【Oracle篇】expdp/impdp高效完成全部生产用户的全库迁移(第四篇,总共四篇)

news2024/11/28 2:47:10

☘️博主介绍☘️

✨又是一天没白过,我是奈斯,DBA一名✨

✌️擅长Oracle、MySQL、SQLserver、Linux,也在扩展大数据方向的知识面✌️

❣️❣️❣️大佬们都喜欢静静的看文章,并且也会默默的点赞收藏加关注❣️❣️❣️

    今天作为expdp/impdp数据泵的最后一篇文章,这篇文章所讲的技能也是非常重要的。在Oracle数据库中,新建实例往往伴随着一系列系统用户的自动生成,如sys、system、scott等。然而,在进行 全库full=y导入 时,若这些系统用户也被 一并导入 ,往往会引发大量的ORA-错误,这样通过日志排查问题时就会有许多干扰。因此,在进行全库迁移时,我们必须排除这些系统用户的导入。接下来,就让我们深入今天的主题,探讨如何通过expdp/impdp实现高效且精准的全库迁移。

    关于逻辑迁移工具全部的篇幅介绍,四篇的内容分别如下:

  • 第一篇:一文搞清exp/imp逻辑迁移工具的用法
  • 第二篇:一文搞清expdp/impdp逻辑迁移工具的用法
  • 第三篇:expdp/impdp轻松完成某个生产用户从GBK到UTF8编码的迁移
  • 第四篇:expdp/impdp高效完成全部生产用户的全库迁移(当前篇)

                          

目录

expdp全库导出(实例orcl)

impdp全库导入(实例test)

验证数据部分


               

expdp/impdp全库导入的应用场景:

1、迁移字符集。比如将全库用户从GBK字符集迁移到UTF8编码。

2、大版本升级。可以通过全库导入完成大版本升级。

3、测试环境恢复。通过全量备份完成测试环境的数据导入。

                             

expdp/impdp全库导入注意事项:

1)通过impdp导入时,指定sqlfile参数可以显示执行的DDL语句。加上这个参数后就不会进行数据导入了,只会根据导入的dmp文件,将dmp文件涉及到的DDL语句输出到sqlfile指定的文件中,然后筛选出来业务表空间进行手动创建。

2)排除导入的系统用户,因为系统用户是按照实例默认创建的所以导入时需要排除。在每个大版本中系统用户都不一样,所以需要根据具体的大版本而排除。

          

Oracle11g和19c环境下的默认系统用户:

Oracle 11g单机环境下的系统用户:新建了一个11g的实例,可以看到默认11g的实例有30个系统用户,所以在导入时就要排除它们。

SQL> select username,to_char(CREATED,'yyyy-mm-dd hh24:mi:ss')  from dba_users order by CREATED desc;

USERNAME										      TO_CHAR(CREATED,'YYYY-MM-DDHH24:MI:SS')
-------------------------------                    -------------------------------------------------------------
SCOTT											         2013-08-24 12:04:21
OWBSYS_AUDIT										     2013-08-24 12:03:41
OWBSYS											         2013-08-24 12:03:40
APEX_PUBLIC_USER							             2013-08-24 11:58:27
FLOWS_FILES										         2013-08-24 11:58:27
APEX_030200									     	     2013-08-24 11:58:27
MGMT_VIEW										         2013-08-24 11:57:53
SYSMAN											         2013-08-24 11:56:19
SPATIAL_CSW_ADMIN_USR				  	                 2013-08-24 11:56:11
SPATIAL_WFS_ADMIN_USR						             2013-08-24 11:56:08
MDDATA									    		     2013-08-24 11:53:28
OLAPSYS 									    	     2013-08-24 11:52:40
ORDDATA 										         2013-08-24 11:49:40
ORDSYS											         2013-08-24 11:49:40
MDSYS											         2013-08-24 11:49:40
ORDPLUGINS										         2013-08-24 11:49:40
SI_INFORMTN_SCHEMA						                 2013-08-24 11:49:40
XS$NULL 										         2013-08-24 11:49:29
ANONYMOUS										         2013-08-24 11:47:55
XDB											             2013-08-24 11:47:55
CTXSYS											         2013-08-24 11:47:37
EXFSYS											         2013-08-24 11:47:27
WMSYS											         2013-08-24 11:43:26
APPQOSSYS										         2013-08-24 11:43:00
DBSNMP											         2013-08-24 11:42:59
ORACLE_OCM								  		         2013-08-24 11:39:34
DIP											             2013-08-24 11:38:58
OUTLN											         2013-08-24 11:37:43
SYS											             2013-08-24 11:37:40
SYSTEM											         2013-08-24 11:37:40

30 rows selected.

             

Oracle 19c单机环境下的系统用户:新建了一个19c的实例,可以看到默认19c的实例有36个系统用户,所以在导入时就要排除它们。

SQL> select username,to_char(CREATED,'yyyy-mm-dd hh24:mi:ss')  from dba_users order by CREATED desc;

USERNAME															 TO_CHAR(CREATED,'YY
---------------------------------                           ----------------------------------------------------------------------------------
DVF													     			 2019-04-17 02:02:47
DVSYS																 2019-04-17 02:02:47
LBACSYS 															 2019-04-17 02:02:15
MDDATA																 2019-04-17 01:53:39
OLAPSYS 															 2019-04-17 01:52:56
SI_INFORMTN_SCHEMA								    				 2019-04-17 01:48:37
ORDDATA 															 2019-04-17 01:48:37
ORDPLUGINS															 2019-04-17 01:48:37
MDSYS																 2019-04-17 01:48:37
ORDSYS																 2019-04-17 01:48:36
CTXSYS																 2019-04-17 01:46:56
OJVMSYS 															 2019-04-17 01:42:57
WMSYS																 2019-04-17 01:40:04
ANONYMOUS															 2019-04-17 01:16:53
XDB															    	 2019-04-17 01:16:53
GGSYS																 2019-04-17 01:15:01
GSMCATUSER															 2019-04-17 01:14:57
APPQOSSYS															 2019-04-17 01:14:37
DBSNMP																 2019-04-17 01:14:35
SYS$UMF 															 2019-04-17 01:10:05
ORACLE_OCM															 2019-04-17 01:04:04
DBSFWUSER															 2019-04-17 01:02:55
REMOTE_SCHEDULER_AGENT									    		 2019-04-17 01:02:54
XS$NULL 															 2019-04-17 01:02:44
DIP															    	 2019-04-17 01:02:17
GSMROOTUSER															 2019-04-17 01:02:03
GSMADMIN_INTERNAL										    		 2019-04-17 01:02:02
GSMUSER 															 2019-04-17 01:02:02
OUTLN																 2019-04-17 00:56:39
SYSKM																 2019-04-17 00:56:33
AUDSYS																 2019-04-17 00:56:33
SYSRAC																 2019-04-17 00:56:33
SYSBACKUP															 2019-04-17 00:56:33
SYSTEM																 2019-04-17 00:56:33
SYSDG																 2019-04-17 00:56:33
SYS																     2019-04-17 00:56:32

36 rows selected.

        

ps注意:单机环境和rac环境是不同的,所以rac的实例系统用户和单机的实例系统用户是有可能不一样的,这里我就不演示了。rac环境搭建后之后,通过上面的SQL去查看默认的系统用户有哪些,那么就要在导入的时候排除。

                 

                

expdp全库导出(实例orcl)

1、创建数据泵的dmp文件存放目录

[root@rac1 ~]# mkdir /liu 
[root@rac1 ~]# chown oracle:oinstall /liu
###文件liu(路径/liu)在/dev/sdb3下挂载,将文件的所属用户和目录改为oracle:oinstall

SYS@orcl> create  directory  BACKUP20200328 as  '/liu'; 
SYS@orcl> grant  all  on  directory  BACKUP20200328  to  system ;
###创建数据泵的转储路径(在使用expdp时,指定到liu目录时,数据文件就会生成在/liu路径下)。赋予给所有用户目录liu的所有执行权限,为了以后普通用户使用expdp时有权限将dmp数据文件导入到/liu下。

2、全库full=y导出数据

[oracle@19c ~]# expdp \"/ as sysdba\" directory=BACKUP20200328 dumpfile=expdp_orcl_full_%U.dmp logfile=expdp_full.log full=y parallel=2

               

impdp全库导入(实例test)

1、全库用户导入前需要注意的事情

1)关注归档目录,定时进行删除,避免空间耗尽。可以考虑先关闭归档

2)全部数据量有500G以上,导入过程中undo和temp占用很多,适当扩容。

           Undo表空间给7个,总大小210G,并且减少undo_retention为300秒

           Temp表空间给3个,总大小90G

3)数据文件看情况增加

4)expdp/impdp导入导出优化。👉【Oracle篇】一文搞清expdp/impdp逻辑迁移工具的用法(第二篇,总共四篇)-CSDN博客👈

2、在服务器上创建一个新实例test

实例静默安装:

[oracle@11g ~]$ vi /home/db/oracle/product/12.2/db_1/response/dbca.rsp

sid=实例名
gdbName=全局数据库名
sysPassword=密码
systemPassword=密码
dbsnmpPassword=密码
datafileDestination=/home/db/oracle/oradata     ---数据库文件路径
recoveryAreaDestination=/home/db/oracle/fast_recovery_area
characterSet= AL32UTF8
totalMemory=AMM内存大小        ---单位M
automaticMemoryManagement=TRUE    ---是否启用自动内存管理
templateName=General_Purpose.dbc     ---数据库模板,必填
storageType=FS          ---指定要创建的数据库的存储类型,有FS和ASM,默认FS文件系统

[oracle@rac1 ~]$ dbca -silent -createDatabase -responseFile /home/db/oracle/product/12.2/db_1/response/dbca.rsp

调整新实例的数据文件、undo、temp、redo初始大小

数据库文件和undo:
SQL> set linesize 500 
     set pagesize 99
     col file_name for a70 
     col file_id for 9999999 
     col status for a10 
     col ts_name for a25 
     col cur_mb for 99999 
     col max_mb for 99999
SQL> select status, file_id, file_name, tablespace_name ts_name,blocks/128 tolal_mb, maxblocks/128 max_mb,AUTOEXTENSIBLE from dba_data_files order by file_name;

SQL> alter database datafile 2 resize 20g;
SQL> alter database datafile 1 resize 20g;
SQL> alter database datafile 3 resize 20g;
SQL> alter database datafile 5 resize 20g;
SQL> alter database datafile 4 resize 10g;


temp临时表空间:
SQL> select username,temporary_tablespace from dba_users;
SQL> set linesize 230
     col file_name for a65
SQL> select  FILE_ID,FILE_NAME,TABLESPACE_NAME,bytes/1024/1024 tolal_mb,status,AUTOEXTENSIBLE,MAXBYTES/1024/1024 max_mb from dba_temp_files;

SQL> alter database tempfile 1 resize 20g;


redo重做日志:生产建议3到6组,每组大小为1G左右
SQL> set linesize 230
     col member for a50
SQL> select * from v$logfile;
SQL> select * from v$log;

SQL> alter database add logfile thread 1 group 10 ('+ARCHDG') size 1024m;
SQL> alter database add logfile thread 1 group 11 ('+ARCHDG') size 1024m;
SQL> alter database add logfile thread 1 group 12 ('+ARCHDG') size 1024m;
SQL> alter database add logfile thread 1 group 13 ('+ARCHDG') size 1024m;
SQL> alter database add logfile thread 2 group 14 ('+ARCHDG') size 1024m;
SQL> alter database add logfile thread 2 group 15 ('+ARCHDG') size 1024m;
SQL> alter database add logfile thread 2 group 16 ('+ARCHDG') size 1024m;

SQL> alter system switch logfile;
SQL> alter system checkpoint;

SQL> alter database drop logfile group 1;
SQL> alter database drop logfile group 2;
SQL> alter database drop logfile group 3;
SQL> alter database drop logfile group 4;

关闭密码过期(默认180天过期):

SQL> select * from dba_profiles where profile='DEFAULT';

SQL> alter profile default limit PASSWORD_LIFE_TIME unlimited;
SQL> alter profile default limit PASSWORD_LOCK_TIME unlimited;
SQL> alter profile default limit PASSWORD_GRACE_TIME unlimited;

关闭审计:长时间开启审计,审计占用空间较大

SQL> alter system set audit_trail=none scope=spfile;

设置归档路径:

SQL> shutdown  immediate
SQL> startup  mount 

SQL> alter  database  archivelog; 
SQL> alter system set log_archive_dest_1='location=+ASM磁盘';

SQL> alter database open;
SQL> archive log list;
SQL> show parameter recover;

db实例参数优化:

SQL> 
alter system set sga_max_size=物理内存x0.5 scope=spfile sid='*';
alter system set sga_target=物理内存x0.5 scope=spfile sid='*';
alter system set pga_aggregate_target=物理内存x0.2 scope=spfile sid='*';    ---设置为ASMM
alter system set "_cursor_obsolete_threshold"=400 scope=spfile sid='*';
alter system set  "_rollback_segment_count" =2000 scope=spfile sid='*';
alter system set "_ktb_debug_flags"=8 sid='*';
alter system set "_datafile_write_errors_crash_instance"=false scope=spfile sid='*';
alter system set events '43822 trace name context forever,level 1';
alter system set enable_ddl_logging=true sid='*' scope=spfile;
alter system set fast_start_parallel_rollback=low sid='*';
alter system set recovery_parallelism=10 scope=spfile sid='*';
alter system set "_cleanup_rollback_entries"=10000 scope=spfile sid='*';
alter system set "_gc_bypass_readers" = false sid = '*' scope=spfile;
alter system set "_gc_override_force_cr" = false sid = '*' scope=spfile;
alter system set "_gc_read_mostly_locking" = false sid = '*' scope=spfile;
alter system set "_serial_direct_read" = false sid = '*' ;
alter system set "_high_priority_processes" = "LGWR|LMS*|VKTM" sid='*' scope=spfile;
alter system set "_use_adaptive_log_file_sync"=false sid='*' scope=spfile;
alter system set "_px_use_large_pool"=true  sid ='*' scope=spfile;
alter system set event='28401 trace name context forever,level 1','10949 trace name context forever,level 1','60025 trace name context forever,level 1', '10503 trace name context forever,level 128' sid='*' scope=spfile;
alter system set "_optimizer_use_feedback"=false sid ='*' scope=spfile;
alter system set "_optimizer_adaptive_cursor_sharing"=false sid='*' scope=spfile;
alter system set "_optimizer_extended_cursor_sharing"=none sid='*' scope=spfile;
alter system set "_optimizer_extended_cursor_sharing_rel"=none sid='*' scope=spfile;
alter system set "_gc_defer_time"=3 scope=spfile sid='*';
alter system set result_cache_max_size=0 scope=spfile sid='*';
alter system set "_gc_policy_time"=0 scope=spfile sid='*';
alter system set "_gc_undo_affinity"=false  scope=spfile  sid='*';
alter system set control_file_record_keep_time=31 scope=spfile sid='*';
alter system set parallel_max_servers=128 scope=spfile sid='*';
alter system set parallel_adaptive_multi_user=false sid='*';
alter system set "_undo_autotune"=false scope=spfile sid='*';
alter system set undo_retention=10800 scope=spfile sid='*';
alter system set "_partition_large_extents"=false scope=spfile sid='*';
alter system set parallel_force_local=true scope=spfile sid='*';
alter system set processes=2000 scope=spfile sid='*';      ---进程数。设置完成后,session和transactions参数会自动调整(session=1.5*processes+22  ;  transactions=1.1*sessions)
alter system set open_cursors=2000 scope=spfile sid='*';   ---打开游标数。一个sql语句就会对应到一个游标(简单理解游标就是一个sql语句)
alter system set session_cached_cursors=300 scope=spfile sid='*';    ---会话缓存游标数(sql语句)。一个会话缓存多个游标(sql语句),一个sql对应一个游标,缓存游标是为了避免软解析,相同的sql再次执行就不需要打开游标了(执行sql就会打开游标,避免打开游标就是避免软解析),绑定变量解决硬解析。 
alter system set db_files=8192 scope=spfile sid='*';   ---允许创建的数据文件总数

3、确认字符集调整undo保留时间

[oracle@11g ~]# export ORACLE_SID=test
[oracle@11g ~]# echo $ORACLE_SID

SQL> alter system set undo_retention=300 scope=both sid='*';   --导入完成之后修改回来

4、创建存放DMP文件夹的引用地址

SQL> create or replace directory baj_dir as '/data3/data4/backup/db160';
SQL> grant all on directory baj_dir to system;

5、通过备份的dmp文件,生成表空间创建的DDL语句

sqlfile=:导入时可以显示执行的DDL语句。加上这个参数后就不会进行数据导入了,只会根据导入的dmp文件,将dmp文件涉及到的DDL语句输出到sqlfile指定的文件中,然后筛选出来业务表空间进行手动创建。

[oracle@11g ~]# impdp \"/ as sysdba\" directory=baj_dir dumpfile=full_backup_20231112010001.dmp logfile=imp.txt sqlfile=ddl_dump.txt

[oracle@11g  ~]# more ddl_dump.txt

注:ddl_dump.txt文件中创建表空间的DDL语句整理到其他文本中,然后再sqlplus中执行,排查掉SYSAUX、SYSTEM、TEMP、UNDOTBS1、USERS这些系统表空间的创建。

6、执行创建表空间语句

    总共涉及到43个表空间的创建,其中42个业务表空间,还包括了一个临时表空间CARRECOVER_TEMP的创建,将表空间的原路径+DATA/core/datafile修改为/data3/oradata/recover/recover/路径:

SQL> 
CREATE TABLESPACE "TBLSPACE_PRP" DATAFILE 
  '/data3/oradata/recover/recover/prp.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_VISA" DATAFILE 
  '/data3/oradata/recover/recover/visa.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_CLAIM" DATAFILE 
  '/data3/oradata/recover/recover/claim.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_PRPIDX" DATAFILE 
  '/data3/oradata/recover/recover/prpidx.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_PAYMENTIDX" DATAFILE 
  '/data3/oradata/recover/recover/paymentidx.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_CLAIMIDX" DATAFILE 
  '/data3/oradata/recover/recover/claimidx.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "WLREPORT_DATA" DATAFILE 
  '/data3/oradata/recover/recover/data.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBS_DEFAULT" DATAFILE 
  '/data3/oradata/recover/recover/default.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBS_ALLIDX" DATAFILE 
  '/data3/oradata/recover/recover/allidx.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_CTUSER" DATAFILE 
  '/data3/oradata/recover/recover/ctuser.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_VISAIDX" DATAFILE 
  '/data3/oradata/recover/recover/visaidx.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "WLREPORT_IDX" DATAFILE 
  '/data3/oradata/recover/recover/idx.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_MGR" DATAFILE 
  '/data3/oradata/recover/recover/mgr.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "JY" DATAFILE 
  '/data3/oradata/recover/recover/jy.dbf' SIZE 2G,
  '/data3/oradata/recover/recover/jy_01.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "INTFTBS" DATAFILE 
  '/data3/oradata/recover/recover/intftbs.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_REINS" DATAFILE 
  '/data3/oradata/recover/recover/reins.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_CW" DATAFILE 
  '/data3/oradata/recover/recover/cw.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "OPENCMS" DATAFILE 
  '/data3/oradata/recover/recover/opencms.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_JY" DATAFILE 
  '/data3/oradata/recover/recover/jy2.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "UMTBS" DATAFILE 
  '/data3/oradata/recover/recover/umtbs.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "INTRAWEB" DATAFILE 
  '/data3/oradata/recover/recover/intraweb.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "OPRTBS" DATAFILE 
  '/data3/oradata/recover/recover/oprtbs.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_CIRC" DATAFILE 
  '/data3/oradata/recover/recover/circ.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_OTHIDX" DATAFILE 
  '/data3/oradata/recover/recover/othidx.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_OTH" DATAFILE 
  '/data1/ora_pmon_recover_oradata/oth.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth_01.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth_02.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth3.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth4.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth5.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth6.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth7.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth8.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth14.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth9.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth10.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth11.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth12.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth13.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth15.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth16.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth17.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth18.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth19.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth20.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth21.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth22.dbf' SIZE 1M autoextend on,
  '/data1/ora_pmon_recover_oradata/oth23.dbf' SIZE 1M autoextend on;
CREATE TABLESPACE "TBLSPACE_RESERVE" DATAFILE 
  '/data3/oradata/recover/recover/reserve.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "ZCDATA" DATAFILE 
  '/data3/oradata/recover/recover/zcdata.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_REINSIDX" DATAFILE 
  '/data3/oradata/recover/recover/reinsidx.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_PAYMENT" DATAFILE 
  '/data3/oradata/recover/recover/payment.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_OTH02" DATAFILE 
  '/data3/oradata/recover/recover/TBLSPACE_OTH02.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TABLESPACE_GB" DATAFILE 
  '/data3/oradata/recover/recover/gb01.dbf' SIZE 2G
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "CEDET_BAOXIAN" DATAFILE 
  '/data3/oradata/recover/recover/cedet_baoxian.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "FXQ" DATAFILE 
  '/data3/oradata/recover/recover/fxq.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "HZ_UCIA" DATAFILE 
  '/data3/oradata/recover/recover/ucia.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "OGG" DATAFILE 
  '/data3/oradata/recover/recover/ogg.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "HZ_SJZL" DATAFILE 
  '/data3/oradata/recover/recover/sjzl.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "CEDET_BAOXIAN_NEW" DATAFILE 
  '/data3/oradata/recover/recover/cedet_baoxian_new.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "TABLESPACE_HZHIC" DATAFILE 
  '/data3/oradata/recover/recover/hzhic.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "HZ_LITIGATION" DATAFILE 
  '/data3/oradata/recover/recover/litigation.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 8192 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBS_DBBAK" DATAFILE 
 '/data3/oradata/recover/recover/TBS_DBBAK.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE BIGFILE TABLESPACE "GGATE" DATAFILE 
 '/data3/oradata/recover/recover/GGATE.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 104857600 MAXSIZE 33554431M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TBLSPACE_CARRECOVER" DATAFILE 
 '/data3/oradata/recover/recover/TBLSPACE_CARRECOVER.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
  LOGGING ONLINE PERMANENT BLOCKSIZE 8192
  EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT 
 NOCOMPRESS  SEGMENT SPACE MANAGEMENT AUTO;
CREATE TEMPORARY TABLESPACE "CARRECOVER_TEMP" TEMPFILE 
 '/data3/oradata/recover/recover/CARRECOVER_TEMP.dbf' SIZE 2G
  AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
  EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1048576;

7、执行impdp导入命令

    排除导入的系统用户,因为系统用户是按照实例默认创建的所以导入时需要排除。在每个大版本中系统用户都不一样,所以需要根据具体的大版本而排除。

[oracle@11g ~]$ vi /data3/data4/backup/db160/exclude.par
EXCLUDE=SCHEMA:"='SYS'"
EXCLUDE=SCHEMA:"='SYSTEM'"
EXCLUDE=SCHEMA:"='OUTLN'"
EXCLUDE=SCHEMA:"='MGMT_VIEW'"
EXCLUDE=SCHEMA:"='FLOWS_FILES'"
EXCLUDE=SCHEMA:"='MDSYS'"
EXCLUDE=SCHEMA:"='ORDSYS'"
EXCLUDE=SCHEMA:"='EXFSYS'"
EXCLUDE=SCHEMA:"='DBSNMP'"
EXCLUDE=SCHEMA:"='WMSYS'"
EXCLUDE=SCHEMA:"='APPQOSSYS'"
EXCLUDE=SCHEMA:"='APEX_030200'"
EXCLUDE=SCHEMA:"='OWBSYS_AUDIT'"
EXCLUDE=SCHEMA:"='ORDDATA'"
EXCLUDE=SCHEMA:"='CTXSYS'"
EXCLUDE=SCHEMA:"='ANONYMOUS'"
EXCLUDE=SCHEMA:"='SYSMAN'"
EXCLUDE=SCHEMA:"='XDB'"
EXCLUDE=SCHEMA:"='ORDPLUGINS'"
EXCLUDE=SCHEMA:"='OWBSYS'"
EXCLUDE=SCHEMA:"='SI_INFORMTN_SCHEMA'"
EXCLUDE=SCHEMA:"='OLAPSYS'"
EXCLUDE=SCHEMA:"='SCOTT'"
EXCLUDE=SCHEMA:"='ORACLE_OCM'"
EXCLUDE=SCHEMA:"='XS$NULL'"
EXCLUDE=SCHEMA:"='MDDATA'"
EXCLUDE=SCHEMA:"='DIP'"
EXCLUDE=SCHEMA:"='APEX_PUBLIC_USER'"
EXCLUDE=SCHEMA:"='SPATIAL_CSW_ADMIN_USR'"
EXCLUDE=SCHEMA:"='SPATIAL_WFS_ADMIN_USR'"

[oracle@11g ~]$ impdp  \"/ as sysdba\"  directory=baj_dir  dumpfile=full_backup_20231112010001.dmp  logfile=impdp_full.log  full=y parallel=4  table_exists_action=append PARFILE=exclude.par

                           

验证数据部分

第一步:验证数据和用户

SQL> select sum(bytes) / 1024 / 1024 / 1024 || 'G' sum from dba_segments;
SQL> select username,created from dba_users order by created desc;

注:总共123个用户,除去系统的30个用户,总共导入了93个用户

第二步:验证有无失效的对象(目标数据库上执行)

SQL> select * from dba_objects where status!='VALID' and owner in('BAJ');
SQL> @?/rdbms/admin/utlrp.sql    ---有无效对象的话,进行无效对象的编译(最大可能自动修复无效对象)。其他重新编译失效对象的方法参考“PLSQL工具使用详解(1)、对象重定义(部分)”文档

第三步:收集统计信息(目标数据库上执行)

[oracle@rac1 ~]# vi status.sql 

begin 
dbms_stats.gather_database_stats; 
end; 
/ 

[oracle@rac1 ~]# nohup sqlplus / as sysdba @status.sql &    ---因为收集统计信息时间长,所以写个sh后台运行

第四步:查看哪些表的统计信息被锁定(stattype_locked字段为ALL的表示锁定了表的统计信息,默认stattype_locked字段为空表示可以收集统计信息):

SQL> select * from dba_ind_statistics where stattype_locked='ALL' AND OWNER='用户';
SQL> select * from dba_tab_statistics where stattype_locked='ALL' AND OWNER='用户';

SQL> begin
       dbms_stats.unlock_schema_stats(ownname  => '用户');
     end;
     /

第五步:验证对象(目标数据库上执行)

SQL> select object_type t_object_type, count(*) t_count
            from dba_objects
         where owner in('用户')
         group by object_type
###注:oracle的对象类型可以分的很详细,表、表分区、表子分区是不同的类型。

第六步:对比导入和导出日志

   

第七步:将undo时间修改回最佳值

SQL> alter system set undo_retention=10800 scope=both sid='*';

    关于Oracle逻辑迁移工具的用户和案例今天就全部讲完了,4篇文章从构思、排版、整理花了2星期的时间,创作不易坚持亦难,希望各个小伙伴 点赞、收藏、加关注 希望这4篇文章能够在大家以后的工作和学习中带来帮助。下篇文章将带来MySQL的内容,尽请关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1560629.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于SpringBoot的游戏商城系统的设计与实现(论文+源码)_kaic

目录 1前言 1.1研究的背景及意义 1.2国内外的研究状况和发展趋势 2需求分析 2.1系统需求分析 2.1.1技术可行性 2.1.2经济可行性 2.1.3操作可行性 2.2系统的开发环境 2.2.1 Springboot框架 2.2.2 数据库Mysql 2.2.3 IntelliJ IDEA平台 2.2.4 Mybatis和MyBatis-plus 2.2.5 前端框…

火鸟门户同城模块

同城活动 同城活动是指在同一城市举办的活动,可以是多种类型,例如: 聚会:朋友聚会、同学聚会、兴趣爱好聚会等。展览:艺术​​展览、科技展览、文化展览等。演出节目:演唱会、音乐会、戏剧表演等。比赛项…

JumpServer 堡垒主机

JumpServer 堡垒机帮助企业以更安全的方式管控和登陆各种类型的资产 SSH:Linux/Unix/网络设备等Windows:Web方式连接/原生RDP连接数据库:MySQL、Oracle、SQLServer、PostgreSQL等Kubernetes:连接到K8s集群中的PodsWeb站点&#x…

Backend - gitea 首次建库(远端本地)

目录 一、建立远端储存库 1. 进入新增画面 2. 填写储存库名称(如book),点击“建立”即可 二、本地关联远端储存库 1. 本地初始化储存库代码 (1)新建文件夹 (2)获取远端储存库 2. 本地编写…

前端学习<二>CSS基础——14-CSS3属性详解:Web字体

前言 开发人员可以为自已的网页指定特殊的字体(将指定字体提前下载到站点中),无需考虑用户电脑上是否安装了此特殊字体。从此,把特殊字体处理成图片的方式便成为了过去。 支持程度比较好,甚至 IE 低版本的浏览器也能…

HTML期末作业-香水网站,逐步讲解

知名品牌 CHANEL I wear nothing but a few drops of Chanel No.5. 了解更多 GIVENCHY 纪梵希香水几乎就是赫本本人的化身——经典、优雅、高贵、简洁、女性化 了解更多 DIOR Dior Addict the now fragrance from Dior. 了解更多 BURBUEEY The good things in life neve…

大数据技术之 Apache Doris(一)

第 1 章 Doris 简介 1.1 Doris 概述 Apache Doris 由百度大数据部研发(之前叫百度 Palo,2018 年贡献到 Apache 社区后,更名为 Doris ),在百度内部,有超过 200 个产品线在使用,部署机器超过 10…

抽象类和接口(2)(接口部分)

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&a…

微信公众号账号迁移主体怎么变更?

公众号迁移有什么作用?只能变更主体吗?大家都知道,公众号是不支持直接变更主体的;但是很多情况下,我们又不得不进行账号主体的更换;这时候,我么就可以通过账号迁移功能,将A公众号的粉…

MySQL使用技巧,高级Java开发必看

insert into tab(col1,col2…) select … 5、活用正则表达式 regexp ^ $ . * | 6、关联查询比子查询效率快,优先使用join关联查询 7、if(exp,v1,v2) if()函数的使用 exp:表达式 v1:exp为真时返回的值 v2:exp为假时返回的值 8、case when… then… else… en…

广和通发布基于高通高算力芯片的具身智能机器人开发平台Fibot

3月29日,为助力机器人厂商客户快速复现及验证斯坦福Mobile ALOHA机器人的相关算法,广和通发布具身智能机器人开发平台Fibot。作为首款国产Mobile ALOHA机器人的升级配置版本,开发平台采用全向轮底盘设计、可拆卸式训练臂结构,赋予…

AI如何影响装饰器模式与组合模式的选择与应用

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》《MYSQL应用》 💪🏻 制定明确可量化的目标,坚持默默的做事。 🚀 转载自热榜文章:设计模式深度解析:AI如何影响…

[C/C++] -- 二叉树

1.简介 二叉树是一种每个节点最多有两个子节点的树结构,通常包括:根节点、左子树、右子树。 满二叉树: 如果一棵二叉树只有度为0的结点和度为2的结点,并且度为0的结点在同一层上,则这棵二叉树为满二叉树。深度为k&a…

10、电科院FTU检测标准学习笔记-双遥信及变位优先验证

———————————————————————————————————— 作者简介: 本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验 在配电自动化验收测试以及电科院测试中,本人全程参…

电脑win10系统更新后开机很慢,更新win10后电脑开机怎么变慢了

很多用户反映,更新win10后电脑开机怎么变慢了呢?现在动不动就要30几秒,以前都是秒开机的,要怎么设置才能提高开机速度?小伙伴们别着急,主要原因可能是关机设置中没有勾选启用快速启动,或者是开机启动设置的问题,针对开机变慢的情况,小编整理了2个处理方法,接下来,我…

U盘PE引导-系统安装操作

U盘PE引导-系统安装操作 1. U盘接入电脑,开机按F12(DELL)选择U盘引导,按回车,如图2.选择进入PE 系统3.进入PE 系统后,运行 WinNTSetup 安装器, 具体 设置如下图 1. U盘接入电脑,开机…

C语言键盘输入与屏幕输出——数据的格式化键盘输入

目录 数据的格式化键盘输入 输入数据的格式控制 scanf()的格式字符 scanf()的格式修饰符 数据的格式化键盘输入 格式 scanf(格式控制字符串,输入地址表); 输入数据的格式控制 格式 scanf(…

深度学习:AIGC重塑金融大模型驱动金融变革

作者:林建明 来源:IT阅读排行榜 本文摘编自《AIGC重塑金融:AI大模型驱动的金融变革与实践》,机械工业出版社出版这是最好的时代,也是最坏的时代。尽管大模型技术在金融领域具有巨大的应用潜力,但其应用也面…

Stream流的详细说明

什么是stream流 Stream流是指一种数据处理的概念,它可以将数据以连续的方式传输,而不用等待整个数据集全部加载完成。在计算机编程中,Stream流通常用于处理大数据集或实时数据流。 Stream流可以分为输入流和输出流,输入流用于从数…

Python 唯一标识符(UUID)库之shortuuid使用详解

概要 在现代软件开发中,唯一标识符(UUID)在数据记录、身份验证和唯一性标识等方面扮演着重要的角色。然而,标准的UUID通常很长,不方便使用。Python的shortuuid库应运而生,它可以生成短且易读的唯一标识符,方便在各种应用场景中使用。本文将深入探讨shortuuid库的特性、…