oracle导出数据泵

80 阅读2分钟

最近在备份一个旧的Oracle的数据,我这边采取的操作是用户备份,(一般是看他们采取表备份的)

我的实例是在阿里云,然后就是登录,因为是旧的数据,我也不知道应该备份什么比较好的,先留档吧

我的这个建立在以前有一个数据库工程师安装好的,配置好的了,我只是进行数据留档,那些权限什么都有的了

思路: 我的思路是看一下history,看看以前的人是备份什么的 查看oracle用户的创建时间,去判断备份用户

实施: 首先登录oracle用户,启动监听文件,监听用户是谁,修改主机名和监听的主机名一致

[root@iZj6c8d3rzq75vl8cvdgk9Z ~]#  su - oracle
[oracle@iZj6c8d3rzq75vl8cvdgk9Z ~]$ 
[oracle@iZj6c8d3rzq75vl8cvdgk9Z ~]$ 
[oracle@iZj6c8d3rzq75vl8cvdgk9Z ~]$ 
[oracle@iZj6c8d3rzq75vl8cvdgk9Z ~]$ 
[oracle@iZj6c8d3rzq75vl8cvdgk9Z ~]$ 
[oracle@iZj6c8d3rzq75vl8cvdgk9Z ~]$ cat /u01/app/oracle/product/11.2.0/db1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
#      (ADDRESS = (PROTOCOL = TCP)(HOST = iZj6cc243ko8w1stn4vqrnZ)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = iZj6cgnm52um9jw7x9y18jZ)(PORT = 1521))
#iZj6cgnm52um9jw7x9y18jZ

    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

SID_LIST_LISTENER =
(SID_LIST =
  (SID_DESC =
  (GLOBAL_DBNAME = swkj)
  (SID_NAME = swkj)
  )
)


你要么修改监听的主机名,要么就修改主机名,我这边采取的是临时修改主机名,

 临时修改主机名

 临时修改(仅对当前会话有效):
 使用hostname命令可以临时修改当前会话的主机名,但重启后会恢复原来的主机名。
 
 
 [root@iZj6cggyl1bpmo19jlf6dxZ ~]# sudo hostname iZj6cgnm52um9jw7x9y18jZ

登录,启动监听

[oracle@iZj6cgnm52um9jw7x9y18jZ ~]$ sqlplus "/as sysdba"

SQL*Plus: Release 11.2.0.4.0 Production on Tue Nov 12 23:49:34 2024

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>  startup
ORACLE instance started.

Total System Global Area 4275781632 bytes
Fixed Size                  2260088 bytes
Variable Size            1157628808 bytes
Database Buffers         3103784960 bytes
Redo Buffers               12107776 bytes
Database mounted.
Database opened.

查看所有用户: 您可以使用DBA_USERS视图来查看数据库中所有用户的信息,包括用户名、用户编号和创建日期。以下是相应的SQL查询语句:

sql

SELECT USERNAME, USER_ID, CREATED FROM DBA_USERS;


创建日期 后面开始看  13-JAN-20  2020113日

USERNAME                          USER_ID CREATED
------------------------------ ---------- ------------------
NEW_RETAIL                             93 13-JAN-20
WALLET                                 94 15-APR-21

这个是我筛选出来的,查看创建时间然后进行的

查看数据多大

SQL> SELECT SUM(bytes)/1024/1024 FROM dba_segments WHERE owner='NEW_RETAIL';

SUM(BYTES)/1024/1024
--------------------
          344718.938
          
          这个数据的大小是  上面还需要除于1024
          占用空间=336.639588GB

现在就是要么导出表空间,要么导出用户的数据

表空间的话就是这样计算的

SQL> SELECT DEFAULT_TABLESPACE FROM DBA_USERS WHERE USERNAME = 'WALLET';

DEFAULT_TABLESPACE
------------------------------
SWKJ

SQL> SELECT SUM(bytes)/1024/1024 FROM dba_data_files WHERE tablespace_name='SWKJ';

SUM(BYTES)/1024/1024
--------------------
          344063.984
          


导出数据泵语句


expdp  WALLET/new_password  dumpfile=WALLET.dmp logfile=WALLET.log
expdp  new_retail/a7355eaab$ac3  dumpfile=retail.dmp logfile=retail.log


这个时候你需要的是注意导出的数据空间够不够你的存储容纳

我的用户表空间大小就是300G左右 我查看了下磁盘空间,感觉不够
[oracle@iZj6cgnm52um9jw7x9y18jZ dpdump]$ df -Th
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/vda1      ext4    40G   12G   26G  31% /
tmpfs          tmpfs  3.8G     0  3.8G   0% /dev/shm
/dev/vdb1      ext4   591G  447G  115G  80% /mnt


使用压缩命令 compression=ALL compression=QUERY

在Oracle数据泵(expdp)中使用compression参数可以压缩导出的数据文件,减少存储空间的使用。compression参数有两种模式:ALL和QUERY。

ALL:压缩所有的数据块。 QUERY:只压缩查询结果集。


expdp new_retail/new_password dumpfile=retail.dmp logfile=retail.log compression=ALL


[oracle@iZj6cgnm52um9jw7x9y18jZ dpdump]$ expdp new_retail/new_password dumpfile=retail.dmp logfile=retail.log compression=ALL

Export: Release 11.2.0.4.0 - Production on Wed Nov 13 00:16:49 2024

Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options Starting "NEW_RETAIL"."SYS_EXPORT_SCHEMA_02": new_retail/******** dumpfile=retail.dmp logfile=retail.log compression=ALL Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 255.9 GB Processing object type SCHEMA_EXPORT/USER Processing object type SCHEMA_EXPORT/SYSTEM_GRANT


不出意外是没有空间的了...游戏重来

先校验空间,然后CPU,最后宽带吧

  

> 本文使用 [文章同步助手](https://juejin.cn/post/6940875049587097631) 同步