作者:手机用户2702935421_666 | 来源:互联网 | 2024-11-16 17:21
本文将详细介绍如何在 Oracle 数据库中进行筛选备份和恢复操作,包括权限授予、目录管理、数据导出和导入等步骤。
1. 导出数据
1.1 授予权限
首先,需要为用户授予权限以确保其能够执行导出操作:
grant connect, resource, dba to username;
grant read, write on directory dpdata to username;
1.2 查看数据库目录
检查数据库中是否存在所需的目录:
select * from dba_directories;
1.3 创建目录(如果不存在)
如果目录不存在,则需要创建它:
create directory dpdata as '/data/dpdata';
1.4 查看用户的默认表空间
确认用户的默认表空间:
select username, default_tablespace from dba_users;
1.5 查询大历史表
找出占用空间较大的历史表:
select Segment_Name, sum(bytes)/1024/1024 as size_mb
from user_extents
累加 group by Segment_Name
order by size_mb desc;
1.6 筛选备份
使用 Data Pump 工具进行筛选备份,排除特定的历史表:
expdp username/password@orcl schemas=username dumpfile=20170703.dmp exclude=TABLE:"IN ('T_T_HOLD_H', 'T_F_FUND_FLOW_H', 'T_T_USERNAME_H', 'T_T_ORDER_H')" directory=dpdata;
1.7 备份特定表空间
备份四张历史表的元数据:
expdp username/password@orcl tables=('T_T_HOLD_H', 'T_F_FUND_FLOW_H', 'T_T_USERNAME_H', 'T_T_ORDER_H') cOntent=metadata_only directory=dpdata dumpfile=zheng.dmp;
2. 导入数据
2.1 查询用户及其表空间
检查目标数据库中的用户及其表空间:
select username, default_tablespace from dba_users;
2.2 创建用户(如果不存在)
如果目标用户不存在,则需要创建新用户:
create temporary tablespace username_temp tempfile '/data/oradata/orcl/username_tmp.dbf' size 10240M autoextend on next 500M maxsize unlimited extent management local;
create tablespace username logging datafile '/data/oradata/orcl/username.dbf' size 28m autoextend on next 500m maxsize unlimited extent management local segment space management auto;
create user username identified by username default tablespace username temporary tablespace username_temp;
2.3 授予权限
为新用户授予权限:
grant connect, resource, dba to username;
grant read, write on directory dpdata to username;
3. 导入数据
3.1 导入表结构
使用 Data Pump 工具导入四张历史表的结构:
impdp username/username@orcl directory=dpdata dumpfile=zheng.dmp remap_schema=username:username remap_tablespace=username:username table_exists_action=replace transform=oid:n;
3.2 导入数据
导入除四张历史表外的其他数据:
impdp username/username@orcl directory=dpdata dumpfile=20170703.dmp remap_schema=username:username remap_tablespace=username:username table_exists_action=replace transform=oid:n;
通过以上步骤,您可以成功地在 Oracle 数据库中进行筛选备份和恢复操作。