Sie sind auf Seite 1von 3

CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb_adm IDENTIFIED BY oracle

CREATE_FILE_DEST='/u01/app/oracle/oradata/orcl/pdb2';

CREATE PLUGGABLE DATABASE pdb3 ADMIN USER pdb_adm IDENTIFIED BY oracle

FILE_NAME_CONVERT=('/u01/app/oracle/oradata/orcl/pdbseed/','/u01/app/oracle/oradata
/orcl/pdb3/');

ALTER SESSION SET


PDB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/orcl/pdbseed/','/u01/app/oracle/orad
ata/orcl/pdb4/';

CREATE PLUGGABLE DATABASE pdb5 FROM pdb1


FILE_NAME_CONVERT=(
'/u01/app/oracle/oradata/orcl/pdb1/',
'/u01/app/oracle/oradata/orcl/pdb5/');

Unplug and Plug


===============
ALTER PLUGGABLE DATABASE pdb2 CLOSE;
ALTER PLUGGABLE DATABASE pdb2 UNPLUG INTO '/u01/pdb2.xml';

SELECT name, open_mode


FROM v$pdbs
ORDER BY name;

DROP PLUGGABLE DATABASE pdb2 KEEP DATAFILES;

SELECT name, open_mode


FROM v$pdbs
ORDER BY name;

CREATE PLUGGABLE DATABASE pdb2new USING '/u01/pdb2.xml'

FILE_NAME_CONVERT=('/u01/app/oracle/oradata/orcl/pdb2/','/u01/app/oracle/oradata/cd
b1/pdb2/');

Cloning a Remote PDB


===================
cdb1 : The local database that will eventually house the clones.
orcl : The remote CDB, used for cloning a remote PDB (pdb5).

Create a user in the remote database for use with the database link. In this case,
we will use a common user in the remote PDB.

CREATE USER c##remote_user IDENTIFIED BY oracle CONTAINER=ALL;


GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##remote_user CONTAINER=ALL;

Check the remote CDB is in local undo mode and archivelog mode.

SELECT property_name, property_value


FROM database_properties
WHERE property_name = 'LOCAL_UNDO_ENABLED';

SELECT log_mode
FROM v$database;
Switch to the local server and create a "tnsnames.ora" entry pointing to the remote
database for use in the USING clause of the database link.

orcl=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = my-server.my-domain)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

Connect to the local database to initiate the clone.

CREATE DATABASE LINK clone_link


CONNECT TO c##remote_cuser IDENTIFIED BY oracle USING 'orcl';

DESC user_tables@clone_link

CREATE PLUGGABLE DATABASE pdb1clone FROM pdb1@clone_link1


CREATE_FILE_DEST='/u01/app/oracle/oradata/cdb1/pdb1clone';;

SELECT name, open_mode FROM v$pdbs WHERE name = 'PDB5CLONE';

CREATE PLUGGABLE DATABASE pdb5 FROM pdb5@clone_link RELOCATE;

CREATE PLUGGABLE DATABASE pdb5_ro FROM pdb5@clone_link


REFRESH MODE MANUAL;
SELECT name, open_mode FROM v$pdbs WHERE name = 'PDB5_RO';

ALTER PLUGGABLE DATABASE pdb5_ro OPEN READ ONLY;

SELECT name, open_mode FROM v$pdbs WHERE name = 'PDB5_RO';

ALTER SESSION SET CONTAINER=pdb5_ro;

ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;


ALTER PLUGGABLE DATABASE REFRESH;
ALTER PLUGGABLE DATABASE OPEN READ ONLY;

CREATE PLUGGABLE DATABASE pdb5ref FROM pdb5@clone_link1


REFRESH MODE EVERY 1 MINUTES
CREATE_FILE_DEST='/u01/app/oracle/oradata/cdb1/pdb1ref';

Non Cdb to PDB


================

export ORACLE_SID=orcl (non-cdb)


sqlplus / as sysdba

SHUTDOWN IMMEDIATE;
STARTUP OPEN READ ONLY;
BEGIN
DBMS_PDB.DESCRIBE(
pdb_descr_file => '/tmp/db12c.xml');
END;
/

export ORACLE_SID=cdb1
sqlplus / as sysdba

CREATE PLUGGABLE DATABASE pdb6 USING '/tmp/db12c.xml'


COPY
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/orcl/',
'/u01/app/oracle/oradata/cdb1/pdb6/');

ALTER SESSION SET CONTAINER=pdb6;

@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql

========================================================================
NON-CDB to PDB

Remote: orcl
Local: cdb1

ORCL
Create user
grant prv

LOcal
cdb1
create a db link

create pluggable database........ using @dblink1;


alter session set container=orclpdb;
@noncdb_to_pdb.sql

Das könnte Ihnen auch gefallen