我们有一个由两个 Oracle DB 组成的集群。监控软件代理安装在两台机器上,一夜之间,当备份发生时,我们收到警告,服务器上的网络接口利用率超过 90% - 我确信它已经达到极限。
这是一个问题吗?或者,经验丰富的 DBA,您是否允许数据库服务器偶尔最大化网络接口带宽?如果不是,这可能导致哪些已知问题?
先感谢您!
我的数据库处于挂载状态,我们执行了数据库备份。
backup database format '/backup/db_full%U.bkp';
所以,当恢复它时,我不能简单地使用:
Restore database;
alter database open;
表明
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '+DATA/orcl/datafile/system.257.1161421855'
为什么我还需要恢复数据库?我知道当数据库打开并且我们执行一些备份时,我们必须恢复,因为备份不一致,但在这种情况下,执行备份时数据库处于挂载状态。我不想恢复,因为我不想在备份后应用所有更改。
编辑: 我在 Oracle 19c 文档中发现备份选项“一致”。
backup consistent database format '/backup/db_full%U.bkp';
但仍然重新查询恢复(并且备份是在挂载状态下执行的)。
是否可以将select语句结果用作oracle SQL中的where子句语句/条件?例如:
Condition_txt(FIELD) = 'AND
b.mpal03d >= TO_DATE('01/10/2012','DD/MM/YYYY')'
(Value of field)
我正在尝试通过删除然后重新创建它来修复作业。但我不能,因为当我尝试删除时它似乎不存在,而当我尝试创建时它似乎已经存在
Begin
dbms_scheduler.drop_job(job_name => 'add_error_rate_sig');
End;
[2024-01-24 13:12:33] [99999][27475]
[2024-01-24 13:12:33] ORA-27475: unknown job "SREAPP"."ADD_ERROR_RATE_SIG"
[2024-01-24 13:12:33] ORA-06512: at "SYS.DBMS_ISCHED", line 278
[2024-01-24 13:12:33] ORA-06512: at "SYS.DBMS_SCHEDULER", line 751
[2024-01-24 13:12:33] ORA-06512: at line 2
[2024-01-24 13:12:33] Position: 0
SREAPP> BEGIN
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'add_error_rate_sig',
job_type => 'PLSQL_BLOCK',
job_action => 'BEGIN SREAPP.add_error_rate_sig(null); END;',
number_of_arguments => 0,
start_date => TO_TIMESTAMP_TZ('2024-01-24 00:00:00.000000000 AMERICA/LOS_ANGELES',
'YYYY-MM-DD HH24:MI:SS.FF TZR'),
repeat_interval => 'FREQ=WEEKLY;BYHOUR=01;BYMINUTE=00',
end_date => NULL,
enabled => TRUE,
auto_drop => FALSE,
comments => 'push to error rate summary'
);
END;
[2024-01-24 13:12:44] [99999][27477]
[2024-01-24 13:12:44] ORA-27477: "SREAPP"."ADD_ERROR_RATE_SIG" already exists
[2024-01-24 13:12:44] ORA-06512: at "SYS.DBMS_ISCHED", line 175
[2024-01-24 13:12:44] ORA-06512: at "SYS.DBMS_SCHEDULER", line 286
[2024-01-24 13:12:44] ORA-06512: at line 2
[2024-01-24 13:12:44] Position: 0
复制在其他服务器上工作正常,但是在 DB_B 上存在一些问题;它无法接收档案。
有人可以帮我吗?如果我遗漏了任何参数,请告诉我。
编辑:主要是 DB_A,DR 是 DB_B
主节点上的配置
NAME TYPE VALUE
------------------ ------ -------------------------------------------------------------------------------------
log_archive_dest_5 string service=DB_B ASYNC valid_for=(online_logfile,all_roles) db_unique_name=DB_B
NAME TYPE VALUE
---------- ------ ----------------------------------
fal_client string DB_A
fal_server string DB_C, DB_D, DB_E, DB_B
NAME TYPE VALUE
------------------ ------ ---------------------------------------------------
log_archive_config string DG_CONFIG=(DB_C,DB_D,DB_E,DB_B,DB_A)
TNSPing 也成功
关于灾难恢复
NAME TYPE VALUE
------------------------------------ ----------- --------------------------------
fal_client string DB_B
fal_server string DB_C, DB_D, DB_E, DB_A
NAME TYPE VALUE
------------------------------------ ----------- --------------------------------------------------
log_archive_config string dg_config=(DB_C,DB_A,DB_E,DB_D,DB_B)
EMPLOYEE
我导出了Oracle DB 中表的DDL 。这个指数是什么?该索引适用于哪些列?
CREATE UNIQUE INDEX "MY_USER"."SYS_IL0000126968C00005$$" ON "MY_USER"."EMPLOYEE" (
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA"
PARALLEL (DEGREE 0 INSTANCES 0) ;
该查询不显示上述索引。如何查询上述唯一索引?
select
TABLE_NAME,
INDEX_NAME,
UNIQUENESS,
NUM_ROWS,
CONSTRAINT_INDEX,
OWNER,
TABLE_OWNER
from
SYS.ALL_INDEXES;
我正在尝试从活动数据库复制数据库,但我的辅助设备上的连接似乎被阻止。我正在使用 ASM just4info。
目标数据库:
监听器.ora:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MELISA)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=MELISA)
(ORACLE_HOME=/u01/app/oracle/product/19/dbhome_1)
)
)
ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER=ON # line added by Agent
VALID_NODE_CHECKING_REGISTRATION_LISTENER=ON # line added by Agent
tnsnames.ora:
MELISA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MELISA)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MELISA)
)
)
LISTENER_MELISA =
(ADDRESS = (PROTOCOL = TCP)(HOST = MELISA)(PORT = 1521))
PELISA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PELISA)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PELISA)
)
)
LISTENER_PELISA =
(ADDRESS = (PROTOCOL = TCP)(HOST = PELISA)(PORT = 1521))
辅助的:
监听器.ora:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PELISA)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=PELISA)
(ORACLE_HOME=/u01/app/oracle/product/19/dbhome_1)
)
)
tnsnames.ora
LISTENER_PELISA =
(ADDRESS = (PROTOCOL = TCP)(HOST = PELISA)(PORT = 1521))
PELISA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = PELISA)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = PELISA)
)
)
MELISA =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = MELISA)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = MELISA)
)
)
LISTENER_MELISA =
(ADDRESS = (PROTOCOL = TCP)(HOST = MELISA)(PORT = 1521))
lsnrctl 状态:
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date 05-JAN-2024 09:45:43
Uptime 0 days 0 hr. 5 min. 15 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /u01/app/oracle/diag/tnslsnr/PELISA/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=PELISA)(PORT=1521)))
Services Summary...
Service "+ASM" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "+ASM_DG_DATA" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "+ASM_DG_FRA" has 1 instance(s).
Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "PELISA" has 1 instance(s).
Instance "PELISA", status BLOCKED, has 1 handler(s) for this service...
The command completed successfully
辅助数据库使用 spfile 处于 nomount 状态,当尝试连接到 rman 时,出现以下错误:
connected to target database: MELISA (DBID=3534003804)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: initialization of internal recovery manager package failed
RMAN-04006: error from auxiliary database: ORA-12528: TNS:listener: all appropriate instances are blocking new connections
我不太确定,这里可能出了什么问题,我停止了防火墙,因为它是测试机。
提前致谢。
Oracle 19c 有没有办法监控索引?
我已打开索引监控
ALTER INDEX my_index_i MONITORING USAGE;
使用下面的查询可以大致了解何时使用索引:
SELECT index_name,
table_name,
monitoring,
used,
start_monitoring,
end_monitoring
FROM dba_object_usage
WHERE index_name = 'name'
AND owner = 'name'
ORDER BY index_name;
SELECT name, owner, TO_CHAR(last_used, 'YYYY-MM-DD HH24:MI:SS') AS "Last Used"
FROM dba_index_usage
WHERE name = 'name';
问题是,我仍然无法判断一个索引一天被使用了多少次,以及在什么时间被使用?
有没有办法/查询来监控这种情况?
PS 我知道触发器,但我正在寻找替代方案 - 如果我没有找到替代方案,那么触发器就是!
提前致谢!
当前环境:
12cR1 RAC 生产数据库 -> 比如说 PROD
12cR1 单实例物理备用(Active Data Guard)-> 假设 DR1
规划环境:
12cR1 RAC 生产数据库 -> PROD(来自当前环境)
12cR1 单实例物理备用 (Active Data Guard) -> DR1(来自当前环境)
12cR1 RAC 物理备用 -> 比如说 DR2(新环境)
12cR1 单实例物理备用 -> 假设 DR3(级联备用到 DR2)(新环境)
重要提示:不会使用数据保护代理。该过程将手动完成。
设想:
我们想切换到新的物理机。
物理机和操作系统(OEL 8.7)安装已完成。(新环境)
Oracle 19c 网格软件和Oracle 12cR1 数据库软件安装已完成。(新环境)
这里的目标是迁移到新的物理机并迁移到更新的操作系统版本。切换到新环境后,将计划从12cR1升级到19c。
迁移前几天,新环境中的Data Guard安装将完成。(命名为DR2)
同时,与DR2级联的DR3 Data Guard的安装将在迁移前几天完成。(DR3)
因此,在迁移时,PROD 将有 2 个不同的数据保护(DR1 和 DR2)。同时DR3与DR2级联。
我们这样做的目的是以最短的停机时间完成迁移。从PROD切换到DR2后,我们将DR3从级联备用转换为物理备用(主动数据保护)。
问题:
我有两个不同的问题。
1-) 这种情况可能吗?虽然 PROD 有 2 个不同的数据保护(DR1 和 DR2),但如何使用命令确定是否专门针对 DR2 执行切换(而不损坏 DR1)?实际上,DR1 在迁移过程中并不重要,或者我应该在切换之前从数据防护配置中删除 DR1?(通过从 dg_config、fal_server、fal_client、log_archive_dest 等参数中删除 DR1)
2-) 在切换到 DR2 之前,是否需要在 DR3 中执行任何操作?因为它会一直作为级联备用工作,直到切换的那一刻。还是应该在从PROD切换到DR2之前删除DR3的级联备用配置,并在切换后将其配置为新PROD(旧DR2)的物理备用?切换后,DR2 将成为新的 PROD,DR3 将成为新的 DR2(主动数据保护)?
我正在使用此语句从另一个表插入记录:
SQL> insert into city(city_code, country_code, city)
select distinct(city_code), country_code, city_name
from airport_final;
2 3
9012 rows created.
我发现很多重复的记录:
SQL> SELECT city_code, COUNT(city_code)
FROM airport_final
GROUP BY city_code
HAVING COUNT(city_code) > 1;
VRA 2
WBU 3
YMQ 4
YPR 2
330 rows selected.
我不知道我正在选择不同的记录,但为什么它会插入重复项
此致