【Oracle19c】手工数据统计信息并导入dmp数据

1、数据统计信息

1.设置并行收集
SQL> set timing on
SQL> exec dbms_stats.set_global_prefs('CONCURRENT','TRUE');

2.开始收集全库统计信息
begin
dbms_stats.gather_database_stats(ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE, method_opt => 'for all indexed columns', cascade=>true, degree=>120);
end;
/

3.关闭并行收集 
SQL> exec dbms_stats.set_global_prefs('CONCURRENT','FALSE');

注意:如果执行第二步统计数据出现ORA-20000错误,可能需要关闭并行收集。

2.查询系统用户表,看数据条数是否已更新

SELECT TABLE_NAME,NUM_ROWS FROM USER_TABLES WHERE TABLE_NAME LIKE 'T%' ORDER BY NUM_ROWS DESC;
SELECT TABLE_NAME,NUM_ROWS FROM DBA_ALL_TABLES WHERE TABLE_NAME LIKE 'T%' AND NUM_ROWS>0 ORDER BY NUM_ROWS DESC;

3.数据导入

impdp userid=\'/ as sysdba\' directory=DUMP_DIR dumpfile=20240821_%U.dmp logfile=import.log CLUSTER=N parallel=6 table_exists_action=replace tables=table1,table2,table3

4.数据导出

expdp \"/ as sysdba\" directory=DUMP_DIR dumpfile=20240821_%U.dmp parallel=6 logfile=exp_20240821.log schemas=USER1,USER2,USER3 compression=all CLUSTER=N 

5.常规操作

1.创建用户
create user username identified by passwd;

2.授权
grant connect,resource to username;
grant create session to username;
grant dba to username;

3.创建表空间
create tablespace ACCIDX
  nologging
  datafile '/home/oracle/oradata/orcl/ACCIDX.dbf' size 1000m autoextend on next 50m
  maxsize unlimited
  extent management local
  uniform segment space
  management
  auto;
  
4.创建Directory对象
create or replace directory DUMP_DIR as '/home/oracle/dmpdata';

5.删除表空间
DROP TABLESPACE TA60ACCIDX INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;

6.删除用户
drop user ifm40 cascade;

7.修改密码
alter user ifm40 identified by hundsun;

8.重建视图
select 'CREATE OR REPLACE VIEW '||view_name||' AS ' ||TEXT_VC||';' FROM ALL_VIEWS WHERE OWNER ='NAME';

9.设置Linux主机名(非sql命令操作)
hostnamectl set-hostname ifm40
systemctl restart network

参考文章:
https://blog.youkuaiyun.com/lltfjsy/article/details/130653796
https://blog.51cto.com/u_15735145/5542749

### Oracle 19c 数据导入导出方法或工具 Oracle 提供了多种用于数据迁移的工具和技术,其中最常用的是 `Data Pump` 和传统的 `EXP/IMP` 工具。以下是关于如何使用这些工具完成 Oracle 19c 的数据导入和导出的具体说明。 #### 使用 Data Pump 进行数据导出 (Expdp) `Data Pump Export` 是一种高效的数据导出工具,支持行处理以及更丰富的功能集。其语法如下: ```bash expdp username/password@connection_string \ DIRECTORY=dump_directory_name \ DUMPFILE=export_file.dmp \ LOGFILE=export_log.log \ SCHEMAS=schema_name \ COMPRESSION=all ``` - **username/password**: 登录到目标数据库所需的用户名和密码。 - **connection_string**: 数据库连接字符串,通常为 `<host>:<port>/<service_name>`。 - **DIRECTORY**: 预先创建好的目录对象名称,该对象指向实际存储路径[^5]。 - **DUMPFILE**: 导出文件名。 - **LOGFILE**: 日志文件名。 - **SCHEMAS**: 要导出的一个或多个模式的名字列表。 - **COMPRESSION**: 压缩选项,默认可以设置为 ALL 来启用压缩。 #### 使用 Data Pump 进行数据导入 (Impdp) 同样地,`Data Pump Import` 可以用来将 `.dmp` 文件重新加载回另一个数据库实例中。它的基本命令结构类似于 Expdp: ```bash impdp username/password@connection_string \ DIRECTORY=dump_directory_name \ DUMPFILE=import_file.dmp \ LOGFILE=import_log.log \ REMAP_SCHEMA=old_schema:new_schema \ TABLE_EXISTS_ACTION=APPEND|SKIP|TRUNCATE|REPLACE ``` - 参数解释同上,新增参数包括: - **REMAP_SCHEMA**: 将旧架构映射至新架构。 - **TABLE_EXISTS_ACTION**: 定义当表已存在时的行为,可选值有 APPEND, SKIP, TRUNCATE 或 REPLACE。 需要注意的是,在跨不同版本之间传输数据时可能会遇到兼容性问题。例如从更高版本(如 Oracle 19c)向较低版本(如 Oracle 11g)转移数据会面临挑战,因为某些特性可能不被后者所支持[^2][^4]。 #### 解决常见错误 如果在操作过程中遇到了特定类型的错误消息,则可以根据具体情况进行调整。比如针对 ORA-39083 错误提示“无法创建对象类型 TABLESPACE”,这通常是由于试图添加已经属于当前数据库的一部分文件引起的;此时应该检查相关脚本或者配置是否存在重复定义的情况,作出相应修改[^3]。 --- ### 总结 对于 Oracle 19c 用户来说,利用 Data Pump 技术能够实现快速而有效的数据迁移过程。然而,在涉及多版本环境下的互操作时需格外小心,确保源端与目的端之间的匹配度良好以免引发不必要的麻烦。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值