Debian上sqlplus备份恢复方法
导读:Debian上使用 sqlplus 的 Oracle 备份与恢复 一、概念与准备 sqlplus 不是备份工具,而是 Oracle 的命令行客户端;在 Debian 上做备份恢复,通常通过 sqlplus 执行管理命令,配合 Data P...
Debian上使用 sqlplus 的 Oracle 备份与恢复
一、概念与准备
- sqlplus 不是备份工具,而是 Oracle 的命令行客户端;在 Debian 上做备份恢复,通常通过 sqlplus 执行管理命令,配合 Data Pump(expdp/impdp) 做逻辑备份,或在 sqlplus 中配合 RMAN 做物理备份与恢复。
- 以 oracle 用户操作,先设置环境变量并登录:
- 设置实例:export ORACLE_SID=your_sid
- 登录:sqlplus / as sysdba
- 使用 Data Pump 前需在数据库中创建 DIRECTORY 对象并赋权,指向服务器本地的备份目录(例如 /u01/backup),并确保该目录对 Oracle 软件安装属主可写。
二、Data Pump 逻辑备份与恢复(expdp/impdp)
- 备份(全库或按模式)
- 登录 sqlplus 创建目录对象并赋权:
- CREATE DIRECTORY backup_dir AS ‘/u01/backup’;
- GRANT READ, WRITE ON DIRECTORY backup_dir TO system;
- 退出 sqlplus,在 shell 执行导出(示例为全库):
- expdp system/password@orcl DIRECTORY=backup_dir DUMPFILE=full_20251215.dmp LOGFILE=full_20251215.log FULL=y PARALLEL=4
- 登录 sqlplus 创建目录对象并赋权:
- 恢复(全库或按模式)
- 确认目标库存在所需表空间/用户;必要时先创建用户与表空间。
- 在 shell 执行导入(示例为全库):
- impdp system/password@orcl DIRECTORY=backup_dir DUMPFILE=full_20251215.dmp LOGFILE=imp_20251215.log FULL=y PARALLEL=4
- 常用要点
- 逻辑备份便于迁移/部分恢复;导入时常见权限不足需授予 IMP_FULL_DATABASE 或 SYSDBA(谨慎授权)。
- 大数据量建议指定 PARALLEL、合理分片 DUMPFILE,导入前检查空间与字符集兼容性。
三、RMAN 物理备份与恢复(在 sqlplus 中配合)
- 备份
- 在 sqlplus 检查并开启归档(便于热备与时间点恢复):
- 检查:ARCHIVE LOG LIST;
- 开启(需停机一次进入 mount):SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
- 典型 RMAN 备份(在 shell 执行,示例为全库+归档):
- rman target /
- RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
- rman target /
- 在 sqlplus 检查并开启归档(便于热备与时间点恢复):
- 恢复
- 示例:介质故障后的完全恢复(实例需启动到 mount)
- rman target /
- RMAN> STARTUP FORCE MOUNT;
- RMAN> RESTORE DATABASE;
- RMAN> RECOVER DATABASE;
- RMAN> ALTER DATABASE OPEN;
- rman target /
- 时间点恢复(PITR,示例恢复到指定时间):
- RMAN>
RUN {
- SET UNTIL TIME ‘2025-12-15 10:00:00’;
- RESTORE DATABASE;
- RECOVER DATABASE;
- }
- RMAN> ALTER DATABASE OPEN RESETLOGS;
- RMAN>
RUN {
- 示例:介质故障后的完全恢复(实例需启动到 mount)
- 常用要点
- RMAN 适合生产环境的快速恢复与增量策略;恢复时可用 UNTIL TIME/UNTIL CHANGE/UNTIL CANCEL 控制恢复终点。
四、自动化与异地容灾
- 脚本化与定时任务
- 将 expdp/impdp 或 RMAN 命令写入 Shell 脚本,用 crontab 实现定期全量/增量与日志轮转,保留策略(如近 7 天)与清理旧备份。
- 异地与加密
- 备份完成后用 rsync/scp 或对象存储同步到远程;对敏感 DMP 文件使用 GPG 加密,严格控制文件权限(仅 oracle 用户可读写)。
五、常见问题与排错
- 目录对象与权限
- 报错找不到目录或权限不足时,确认在数据库中已 CREATE DIRECTORY 并 GRANT READ,WRITE,且操作系统目录对 oracle 用户可写。
- 导入权限不足
- 出现 IMP-00013 等错误时,使用具有 IMP_FULL_DATABASE 或 SYSDBA 权限的账户执行导入(遵循最小权限原则)。
- 监听与实例
- 无法连接时,检查监听:lsnrctl status/start;确认 ORACLE_SID 与 tnsnames.ora 配置正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian上sqlplus备份恢复方法
本文地址: https://pptw.com/jishu/771955.html
