oracle19c expdp与shared_pool_size

在使用Oracle 19c的expdp进行数据导出时遇到ORA-04031错误,通过增大shared_pool_size和shared_pool_size_reserved解决了内存不足的问题。然而,即使调整了参数,仍遇到权限错误。为了解决这个问题,为导出用户授予了必要的权限,包括create session、create table等,最终成功完成导出任务。注意,数据库错误可能由多个因素导致,确保遵循标准操作流程能避免此类问题。
摘要由CSDN通过智能技术生成

在导出过程中报了ORA-04031: unable to allocate 168 bytes of shared memory 的错误。

之后调整了3个参数的值,shared_pool_size,shared_pool_size_reserved

         为什么说3个呢,因为shared_pool_size 在pdb和cdb中是俩个值,得分别设置、而shared_pool_size_reserved是CDB的

报错信息如下:

RA-04031: unable to allocate 65240 bytes of shared memory ("shared pool","select s.inst_id,s.addr,s.in...","sga heap(1,0)","KJSC rnb slots")
Use ADRCI or Support Workbench to package the incident.

表面上是我的机器的共享内存不足。

之后我扩容了shared_pool_size,

 alter system set shared_pool_size = 200m scope=both;

需要注意的是保留值这个参数不能动态调整,只能先修改spfile之后重启生效,一般是共享内存的1/10

alter system set shared_pool_size_reserved=20m scope=spfile;

重启job之后还是报错。

突然发现在job里报过这样的一个错误:

ORA-39097: Data Pump job encountered unexpected error -4031

这个错误除了系统设置之外还有权限的错误。

有可能是这个用

要在Oracle 19c中搭建ADG(Active Data Guard),需要执行以下步骤: 1. 在主数据库上启用归档模式: ``` SQL> ALTER DATABASE ARCHIVELOG; ``` 2. 创建一个备用数据库的实例: ``` $ export ORACLE_SID=ORACLE_19C_ADG $ sqlplus / as sysdba SQL> CREATE SPFILE FROM PFILE; ``` 3. 将主数据库的备份复制到备用服务器上,并在备用服务器上还原备份: ``` $ scp /backup/maindb/* oracle@adg_server:/backup/adg/ $ cd /backup/adg/ $ unzip maindb_backup.zip $ export ORACLE_SID=ORACLE_19C_ADG $ rman target / RMAN> DUPLICATE DATABASE FOR STANDBY FROM ACTIVE DATABASE SPFILE SET db_unique_name='ORACLE_19C_ADG' SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C' SET fal_client='ORACLE_19C' SET fal_server='ORACLE_19C_ADG' NOFILENAMECHECK; ``` 4. 配置主数据库的tnsnames.ora文件和备用数据库的tnsnames.ora文件,以便它们互相访问。 5. 在主数据库上创建一个log shipping连接,并将日志传输到备用数据库: ``` SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C_ADG ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C_ADG' SCOPE=BOTH; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH; ``` 6. 在备用数据库上启用日志应用: ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; ``` 完成上述步骤后,ADG就已经搭建完成了。可以使用以下命令检查ADG的状态: ``` SQL> SELECT DATABASE_ROLE FROM V$DATABASE; ``` 如果返回的结果为“PHYSICAL STANDBY”,则表示ADG已经成功搭建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值