备份DB Link定义
通过查询数据字典获取DB Link的创建语句,用于后续重建:
-- Oracle 11g R2及之前版本(密码明文存储)
SELECT 'CREATE DATABASE LINK ' || NAME || ' CONNECT TO ' || USERID || ' IDENTIFIED BY ' || PASSWORD || ' USING ''' || HOST || ''''
FROM SYS.LINK$;
-- Oracle 11g R2之后版本(密码加密存储)
SELECT DBMS_METADATA.GET_DDL('DB_LINK', DB_LINK, OWNER)
FROM DBA_DB_LINKS;
将结果保存为脚本文件,如dblink_backup.sql。
备份DB Link关联数据(可选)
若需备份通过DB Link访问的远程数据,可通过创建本地表存储远程数据实现:
CREATE TABLE backup_table AS SELECT * FROM remote_table@dblink_name;
确保已提前创建本地表空间和用户。
恢复DB Link定义
执行备份脚本中的CREATE DATABASE LINK语句,需确保目标环境已配置正确的TNS连接信息。
-- 示例:创建公有DB Link
CREATE PUBLIC DATABASE LINK link_to_source
CONNECT TO source_user IDENTIFIED BY source_password
USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=source_ip)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=source_sid)))';
恢复DB Link关联数据(可选)
若之前备份了远程数据到本地表,可通过INSERT INTO ... SELECT语句从本地表恢复到远程表(需通过DB Link权限):
INSERT INTO remote_table@dblink_name
SELECT * FROM backup_table;
SELECT ANY DICTIONARY(查询数据字典)和CREATE DATABASE LINK权限。DBMS_METADATA获取DDL或通过ALTER USER重置密码。mysqldump)。参考来源:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。