我们正在清理主数据库中去年的交易。我们使用公共数据库链接每天从另一个数据库中删除记录。每天的记录大约是 30-40k,但有时交易量会达到 100 万条记录。当删除过程面临这样的日子时,它会锁定主数据库并导致锁定。什么是清除记录的理想解决方案?我们也尝试使用alter table truncate partition
解决方案。但是,锁定情况在这一点上更糟。当我们清除数据库时,新记录正在实时写入数据库。所以我无法重新启动或增加distributed_lock_timeout
参数。任何解决方案表示赞赏。
主页
/
user-62325
babuuz's questions
babuuz
Asked:
2016-04-13 06:43:36 +0800 CST
我们已经在服务器上建立了 RAC 数据库。我们可以使用 SCAN 地址从服务器上的 sqlplus 连接到数据库。但是,如果我尝试使用基于 SCAN 地址的 TNS 条目从客户端计算机使用 SQL 开发人员连接到 RAC,则会显示错误
12-APR-2016 22:33:07 * (CONNECT_DATA=(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=User))(SERVICE_NAME=racdb)) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.227.110)(PORT=63694)) * establish * racdb * 12516
TNS-12516: TNS:listener could not find available handler with matching protocol stack
客户端计算机位于防火墙后面。这是 TNS 条目。
RACDB =
(DESCRIPTION =
(LOAD_BALANCE = ON)
(FAILOVER = ON)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.1.149)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.1.150)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.20.1.151)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = racdb)
)
)
我们无法使用 DNS 从客户端解析 SCAN IP,因此我们使用客户端计算机上的 IP 地址。SCAN 的 IP 地址在客户端使用 NAT 进行转换。下面是他们在服务器上设置的真实地址
# SCAN
#192.168.227.149 racdb-scan.esplink.mn racdb-scan
#192.168.227.150 racdb-scan.esplink.mn racdb-scan
#192.168.227.151 racdb-scan.esplink.mn racdb-scan
如果我们把TNS入口的IP地址改成VIP地址,就连接成功了,可以连接RAC数据库了。
使用SCAN地址连接RAC有错吗?
babuuz
Asked:
2016-03-16 17:19:17 +0800 CST
我们目前正计划将我们的数据库从 11g 升级到 12c。但我对 12c 有一些困惑。这是我的问题。
非容器数据库的备用数据库可以是可插拔的吗?反之亦然?
假设在 2 个不同的服务器上有 2 个 CDB。一个有 3 个主 PDB,另一个有 3 个备用 PDB,主 PDB 具有数据保护配置。如果在一个主节点上执行切换,是否会在其他 2 个 PDB 上执行切换?
babuuz
Asked:
2015-11-16 19:38:46 +0800 CST
我设置的 Oracle 实例使用 USE_DB_RECOVERY_FILE_DEST 作为归档日志位置。
log_archive_dest_1 string
LOCATION=use_db_recovery_file_
dest, valid_for=(ALL_ROLES,ALL
_LOGFILES)
我想指定确切的位置。新旧位置相同,只需要指定路径即可。我无法重新启动数据库,因为它是生产服务器。有什么办法可以在不重新启动数据库的情况下做到这一点
babuuz
Asked:
2015-10-30 23:21:45 +0800 CST