Как подключить подключаемую базу данных (PDB) к контейнерной базе данных Oracle12c
Summary: Наша задача — предоставлять решения для упрощения ИТ-инфраструктуры, предлагая решения для баз данных, специализированную разработку, динамические ЦОД и гибкие вычислительные системы. ...
This article applies to
This article does not apply to
This article is not tied to any specific product.
Not all product versions are identified in this article.
Symptoms
Применение:
Базы данных: Oracle 12cR1
Автор:
Махеш Редди
Проблема:
Как подключить подключаемую базу данных (PDB) к контейнерной базе данных Oracle12c?
Решение:
Подключаемую базу данных можно создать следующими способами:
Создание PDB с помощью базы данных SEED. Этот метод копирует файлы, связанные с seed, в новое местоположение и связывает их с новой PDB. Можно легко создать новую PDB из SEED с помощью инструкции «create pluggable database».
Можно указать следующие выражения, чтобы создать новую PDB из SEED различными способами:
Примечание. Выражение «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
Ознакомьтесь с этим техническим документом.
Базы данных: Oracle 12cR1
Автор:
Махеш Редди
Проблема:
Как подключить подключаемую базу данных (PDB) к контейнерной базе данных Oracle12c?
Решение:
Подключаемую базу данных можно создать следующими способами:
- создать новую PDB с помощью seed;
- создать новую PDB путем клонирования существующей PDB;
- подключить отключенную PDB к контейнерной базе данных (CDB);
- создать новую PDB из неконтейнерной базы данных 12c.
Создание 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».
Примечание. Выражение «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
Ознакомьтесь с этим техническим документом.
Article Properties
Article Number: 000146520
Article Type: Solution
Last Modified: 21 Feb 2021
Version: 3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.