共計 2647 個字符,預計需要花費 7 分鐘才能閱讀完成。
這篇文章主要為大家展示了“oracle 12c 使用數據泵復制數據庫結構的注意事項有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領大家一起研究并學習一下“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 使用數據泵復制數據庫結構的注意事項有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!