您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“oracle 12c使用數據泵復制數據庫結構的注意事項有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“oracle 12c使用數據泵復制數據庫結構的注意事項有哪些”這篇文章吧。
1. 創建目錄
create or replace directory dp_dir as '/u02/files';
2. 導出用戶SH,HR的所有結構,不需要數據
vi scott_meta.par
userid="/ as sysdba"
directory=dp_dir
dumpfile=scott_expdp.dmp
schemas=sh,hr
content=metadata_only
開啟4個并行來執行導出
expdp parfile=scott_meta.par parallel=4
3. 導出數據庫表空間結構
vi scott_tbs.par
userid="/ as sysdba"
directory=dp_dir
dumpfile=scott_tbs.dmp
include=tablespace
full=y
content=metadata_only
開啟2個并行來執行導出
expdp parfile=scott_tbs.par parallel=2
4. 復制密碼校驗規則腳本
源庫使用了密碼規則,通過修改下面的文件可以獲得。
cd $ORACLE_HOME/rdbms/admin
cp utlpwdmg.sql scott_utlpwdmg.sql
根據需要修改腳本內容,如果只是需要一個密碼驗證的話可以按照下面的方式來修改。
vi scott_utlpwdmg.sql
...省去部分內容
ALTER PROFILE DEFAULT LIMIT
/*
PASSWORD_LIFE_TIME 90
PASSWORD_GRACE_TIME 3
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 20
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1
*/
PASSWORD_VERIFY_FUNCTION ora12c_verify_function;
...省去部分內容
5. 復制profile腳本
源庫用戶有app_profile限制,需要手工導出
SYS@cdb > select distinct profile from dba_profiles;
PROFILE
---------------
APP_PROFILE
DEFAULT
select profile,resource_name,limit from dba_profiles where profile='APP_PROFILE';
通過上面的查詢結構修改腳本為
vi app_profile.sql
CREATE PROFILE "APP_PROFILE" LIMIT
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
SESSIONS_PER_USER UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
PRIVATE_SGA UNLIMITED
COMPOSITE_LIMIT UNLIMITED
FAILED_LOGIN_ATTEMPTS UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
scp 表空間結構腳本、schema腳本、密碼校驗腳本、profile腳本到目標數據庫
scp scott_tbs.dmp scott_expdp.dmp scott_utlpwdmg.sql app_profile.sql oracle@<ip address>:/home/oracle/files
目標端
5. 創建一個目錄
create or replace directory dp_dir as '/home/oracle/files';
6. 使用數據泵的sqlfile參數將表空間語句導出
impdp \'/ as sysdba\' directory=dp_dir dumpfile=scott_tbs.dmp sqlfile=scott_tbs.sql
腳本內容是create tablespace xxx ...
語句執行完畢后會生成名為scott_tbs.sql的腳本,包含數據庫中創建所有表空間的語句。我們需要將業務所需的表空間(除去安裝系統時候自帶的system/sysaux/undo/users/temp)的腳本提取出來。如果目標端磁盤空間較小,需要將數據文件調小后再運行。
7. 創建表空間
SQL >@/home/oracle/files/scott_tbs.sql
8. 創建密碼約束
SQL >@/home/oracle/files/scott_utlpwdmg.sql
9. 創建用戶profile。如果沒有這個步驟在在導入腳本創建用戶的時候會找不到profile而報錯。
SQL > @/home/oracle/files/app_profile.sql
10. 導入表結構。在這一步會創建用戶,授權,創建表等操作。
impdp \'/ as sysdba\' directory=dp_dir dumpfile=scott_expdp.dmp logfile=scott_expdp.log parallel 4
總結:
數據泵的content=metadata_only選項為導出結構的需求提供了方便。導出對象可以為全庫full=y,表空間inclue=tablespace等等。
使用impdp的sqlfile參數可以導出dmp文件中的創建語句。使用dbms_metadata.get_ddl也可以導出表空間、表的創建語句。
在導入具體用戶結構之前需要將創建用戶所需的密碼規則和相關profile創建好再impdp導入,避免創建用戶時出錯。
以上是“oracle 12c使用數據泵復制數據庫結構的注意事項有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。