Как подключить подключаемую базу данных (PDB) к контейнерной базе данных Oracle12c

Resumen: Наша задача — предоставлять решения для упрощения ИТ-инфраструктуры, предлагая решения для баз данных, специализированную разработку, динамические ЦОД и гибкие вычислительные системы. ...

Este artículo se aplica a Este artículo no se aplica a Este artículo no está vinculado a ningún producto específico. No se identifican todas las versiones del producto en este artículo.

Síntomas

Применение: 
Базы данных: Oracle 12cR1

Автор:
Махеш Редди

Проблема: 
Как подключить подключаемую базу данных (PDB) к контейнерной базе данных Oracle12c?

Решение: 
Подключаемую базу данных можно создать следующими способами:
  • создать новую PDB с помощью seed;
  • создать новую PDB путем клонирования существующей PDB;
  • подключить отключенную PDB к контейнерной базе данных (CDB);
  • создать новую PDB из неконтейнерной базы данных 12c.
1. Создание новой PDB с помощью seed

Создание PDB с помощью базы данных SEED. Этот метод копирует файлы, связанные с seed, в новое местоположение и связывает их с новой PDB. Можно легко создать новую PDB из SEED с помощью инструкции «create pluggable database».

Можно указать следующие выражения, чтобы создать новую PDB из SEED различными способами:
  • «Storage»: можно указать размер хранилища.
  • «Default Tablespace»: создает небольшую файловую область и назначает ее для несистемных пользователей;
  • «path_prefix»: указывает абсолютный путь;
  • «file_name_convert»: указывает новое местоположение файлов PDB из исходных файлов;
  • «Tempfile reuse»: указывает, что используется tempfile из целевого местоположения;
  • «Roles»: предопределенные роли Oracle, предоставляемые роли «PDB_DBA».
SLN310932_ru__1icon Примечание. Выражение «ROLES» можно использовать только при создании PDB из seed.

Пример 1

Sql> Create pluggable database PDBNAME admin user PDBUSR identified by PASSWORD;

Инструкция выше создает PDB с локальным пользователем «PDBUSR».  Эта инструкция предоставляет администратору PDB «pdbusr» роль «PDB_DBA» и предоставляет ей указанные предварительно определенные роли Oracle локально в PDB.

Пример 2                              

Sql> Create pluggable database PDBNAME admin user pdbusr identified by PASSWORD storage (MAXSIZE 5G) default tablespace USERS datafile ‘+DATA_NEW’ size 100M autoextend on path_prefix = ‘+DATA_NEW’ file_name_convert = (‘+DATA’,’DATA_NEW’);

Инструкция выше создает PDB с ограниченным размером. Она указывает, что все принадлежащие PDB табличные пространства не должны превышать 5 гигабайт, и создает пользователей табличных пространств по умолчанию для пользователей без прав администратора в новом местоположении — «+DATA_NEW». 

2.  Создание новой PDB путем клонирования существующей PDB

Клонирование производственной базы данных — это метод, который часто используется для разработки и тестирования изменений приложений и связанных с ними сред. Перед установкой в производственной среде новой версии операционной системы, программного обеспечения для хранения данных или версии приложения необходимо провести тщательное тестирование с использованием производственных данных. Обычно для этого производственная база данных копируется в тестовую среду.

В Oracle12c для клонирования PDB можно использовать инструкцию «CREATE PLUGGABLE DATABASE». Эта инструкция клонирует исходную PDB и подключает клон к той же CDB или удаленной CDB.

Инструкция «CREATE PLUGGABLE DATABASE» копирует файлы, связанные с исходной PDB, в новое местоположение и связывает их с целевой PDB.

Различные типы выражений

1.       Клонирование локальной PDB c помощью выражений «No»

Выражение «No» означает отсутствие структурных изменений.

Пример: sql> create pluggable database clone_pdb from pdb;

В этом случае клонированная pdb создается с таким же размером и ролями с другим GUID в группе дисков по умолчанию.

2.       Клонирование локальной PDB с помощью выражений «PATH_PREFIX» и «FILE_NAME_CONVERT»

Выражение «FILE_NAME_CONVERT» требуется для указания целевых местоположений скопированных файлов. В этом примере файлы копируются из одного местоположения в другое.

Пример: sql> create pluggable database clone_pdb from pdb PATH_PREFIX= '+BRLOAD’ FILE_NAME_CONVERT = ('+DATA','+BRLOAD');

В этом случае файлы данных исходной pdb хранятся в группе дисков «+DATA», а файлы данных клонированной pdb размещаются в другой группе дисков «+BRLOAD». Для преобразования местоположения файлов данных из «+DATA» в «+BRLOAD» можно использовать выражение «FILE_NAME_CONVERT».

3.       Клонирование локальной PDB с использованием выражений «FILE_NAME_CONVERT» и «STORAGE»

Для PDB необходимо обеспечить соблюдение размера хранилища. Поэтому необходимо использовать выражение «STORAGE». В частности, все табличные области, принадлежащие PDB, не должны превышать 2 гигабайта, а пространство, используемое сеансами PDB в общей временной табличной области, не должно превышать 100 мегабайт.

Пример: sql> create pluggable database clone_pdb from pdb FILE_NAME_CONVERT= ('+DATA','+BRLOAD') STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);

 Процедура клонирования локальной PDB

В этом разделе описывается клонирование локальной PDB. После клонирования локальной PDB исходные и целевые PDB будут находиться в одной CDB.

Для клонирования PDB выполните следующие действия.

Этап 1. Проверьте состояние исходной базы данных.

  Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

 Клонируемые PDB должны находиться в состоянии «READ ONLY». Если они находятся в режиме «READ WRITE», измените состояние с помощью следующей команды:

Sql> alter pluggable database pdbname close instances=all;

Здесь «instances=all» означает закрытие PDB на всех узлах.

Sql> alter pluggable database pdb open read only instances=all;

Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ ONLY   NO

Этап 2. Выберите нужные параметры из различных выражений клонирования, указанных в разделе 2.

Sql> create pluggable database clone_pdb1 from pdb1; (no clauses)

Где «pdb1» является исходной базой, а «clone_pdb1» — целевой.

Этап 3. Клонированная PDB находится в режиме монтирования, ее состояние «NEW». Состояние PDB можно просмотреть, запросив столбец «STATUS» представления «CDB_PDB» или «DBA_PDBs».

После этого измените состояние pdb, используя «alter pluggable database», затем необходимо добавить службу PDB на всех узлах в «tnsnames.ora».

3. Отключение и подключение PDB к CDB

Отключение PDB

Отключение PDB отсоединяет PDB от CDB. Операция отключения производит некоторые изменения в файлах данных PDB для записи, например, о том, что PDB была успешно отключена. Поскольку отключенная PDB все еще является частью CDB, она включена в резервную копию RMAN всей CDB. Такое резервное копирование обеспечивает удобный способ архивирования отключенной PDB на случай, если она потребуется в будущем. Перед отключением PDB ее необходимо закрыть. При отключении PDB от CDB отключенная PDB переходит в режим монтирования.

Процедура отключения PDB

Проверьте состояние исходной pdb.

 Sql>show pdbs;

      CON_ID   CON_NAME    OPEN MODE      RESTRICTED

          2    PDB$SEED       READ ONLY   NO

          3    PDB1           READ WRITE  NO

Если исходная PDB находится в режиме «read write», необходимо изменить ее состояние на «MOUNTED».

Sql> alter pluggable database PDBNAME close instances=all;

Подключитесь к корневому контейнеру и выполните следующую команду.

Sql> alter pluggable database pdb1 unplug into /u01/app/oracle/pdb1.xml’;

В этом случае в каталоге «/u01/app/oracle» создается файл метаданных «pdb1.xml».

Используя файл метаданных XML, можно подключить PDB к:

3.1. той же CDB;

3.2. удаленной CDB.

Можно подключить PDB к CDB, используя «create pluggable database», и указать XML-файл с различными выражениями.

Различные типы выражений

Использование выражения «source_file_name_convert, no copy»:
«SOURCE_FILE_NAME_CONVERT»: в файле XML не отображается текущее местоположение файла. В этот раз можно использовать это выражение. XML указывает, что файлы находятся в «+DATA», но фактические файлы находятся в «+DATA1».

Source_file_name_convert = (‘+DATA’,’+DATA1’)

+DATA= string1   +DATA1=string2

В этом случае шаблон имени файла «string2» заменяет шаблон имени файла «string1».

2.       Использование выражения «path_prefix, copy, file_name_convert»:

«PATH_PREFIX»: это выражение используется для указания абсолютного пути местоположения файлов данных.

«FILE_NAME_CONVERT»: это выражение можно использовать, если файлы находятся не в целевом местоположении, но затем их нужно скопировать или переместить во время создания PDB.

3.       Использование выражения «FILE_NAME_CONVERT,MOVE,SOURCE_FILE_NAME_CONVERT»:

Файл XML не описывает текущее местоположение файлов, поэтому требуется «source file name convert». Пример: XML-файл указывает, что файлы находятся в «+DATA», но они находятся в «/u01/app».

«File name convert» требуется для перемещения файлов из «/u01/app» в «+DATA1».

3.1. Подключение отключенной pdb к той же CDB

Перед повторным подключением PDB к той же CDB необходимо удалить ее из CDB.

 Создание подключаемой базы данных с помощью XML-файла различными способами.

a) Метод «NOCOPY»

Sql>Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ nocopy;

b) Метод «COPY»

Sql> Create pluggable database pdb1 using ‘/u01/app/oracle/pdb1.xml’ copy file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);

c) Метод «AS CLONE MOVE»

Sql> Create pluggable database pdb1 as clone using ‘/u01/app/oracle/pdb1.xml’ move file_name_convert=(‘+DATA/pdb1/’,’+DATA1’/pdb1/’);

3.2. Подключение отключенной pdb к удаленной CDB

Предварительные условия:

A) Они должны иметь одинаковый формат порядка байтов.

B) Они должны иметь одинаковый набор установленных параметров базы данных.

Протокол SOURCE

1.   После отключения PDB перенесите XML в целевое местоположение, также перенесите файлы базы данных из группы дисков («+DATA») в местоположение ОС («/home/») с помощью команды «ASMCMD cp» или «DATA_FILE_NAME_CONVERT».

2.   Перенесите файлы базы данных из исходного местоположения в целевое местоположение ОС. 

Протокол TARGET

После получения XML-файлов и файлов базы данных из исходного местоположения можно использовать функцию «DBMS_PDB.CHECK_PLUG_COMPATIBILITY», чтобы определить, совместима ли отключенная pdb с ЦЕЛЕВОЙ CDB.

Если выводится сообщение «YES», то PDB совместима.

Если выводится сообщение «NO», то PDB несовместима. Проверьте ошибки в представлении «PDB_PDB_PLUG_IN_VIOLATIONS».

При создании удаленной PDB выберите необходимые выражения из раздела 3.

Пример: Sql> Create pluggable database pdbname using ‘/home/oracle/pdbname.xml’

      Source_file_name_convert = (‘+SOURCE_DATA’,’/home/oracle/datafiles’)

      Move

      File_name_convert = (‘/home/oracle/datafiles’,’+TARGET_DATA’);

Описание: в файле xml указано местоположение файлов данных PDB относительно дисков ASM, но сами файлы находятся в местоположении «/home/oracle». Выражение «Source_file_name_convert» помогает заменить шаблон имен файлов и указать фактическое местоположение источника. Выражение «file_name_convert» помогает при перемещении данных из местоположения ОС на диски ASM.

4. Миграция базы данных версии 12c, неявляющейся CDB, в PDB

Ознакомьтесь с этим техническим документом.
Propiedades del artículo
Número del artículo: 000146520
Tipo de artículo: Solution
Última modificación: 21 feb 2021
Versión:  3
Encuentre respuestas a sus preguntas de otros usuarios de Dell
Servicios de soporte
Compruebe si el dispositivo está cubierto por los servicios de soporte.