2024年了,某客户核心还在用Oracle 9i
上周有个客户咨询Oracle数据库历史时间SQL性能变慢的问题, 还是个偏重要的核心业务,当然最终确认因为人员的一些变更操作非专业性,导致JOB未运行,产生的数据累积。思考一个问题,Oracle 9i没有AWR, 没有ASH, 甚至当时国内也是没有太多的技术团队储备,是不是像极了现在的国产库现状?我去查了一下《Oracle Database History》9i似乎是2001年 release的(20多年前)。当然现在信息的开放和知识积累,及国内最不缺的“优化”和仿制小能手,可以直接“借轮攒车”,但核心技术并不是一蹴而就的,Oracle 好多功能创新都是基于多版本的迭代如AI index, Auto SPM。另外我希望多听到”AWR”这类技术类创新,少些“可观测性”这类高大上的概念名次。 目前像达梦、GaussDB、翰高、人大金仓也有类似的报告,也有一些DB借助数据库外工具,但数据库指标度量实现的位置是内核层还是SQL层, 希望不要成为DB的top 负载。
Oracle新版本发现一些易用性功能技术创新,如create table xx for exchange with
create table t(c1 int,c2 int invisible) partition by range(c1) ( partition p0 values less than (11), partition p1 values less than (21) ); create table ext1 as select * from t where 1=0; alter table t excange partition p0 with table ext1; -- error ORA-14097: COLUMN type or size mismatch in ALTER TABLE EXCHANGE PARTITION; create table ext2 as for exchange with table t; alter table t excange partition p0 with table ext2; -- will work
及ORACLE TRUE CACHE
当然有些人会说我不需要什么新特性,只是把数据库当数据存储如excel 使用, OK, You win, but not forever!
这里附一段这套库DB alert日志。
Sat Feb 2 01:29:50 2013
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
SCN scheme 3
Using log_archive_dest parameter default value
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 9.2.0.7.0.
System parameters with non-default values:
processes = 1200
timed_statistics = TRUE
shared_pool_size = 318767104
large_pool_size = 318767104
java_pool_size = 33554432
...
... truncated
...
Sat Jan 27 03:22:16 2024
Completed: ALTER DATABASE CLOSE NORMAL
Sat Jan 27 03:22:16 2024
ALTER DATABASE DISMOUNT
Completed: ALTER DATABASE DISMOUNT
ARCH: Archiving is disabled
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
ARCH: Archiving is disabled
Shutting down archive processes
Archiving is disabled
Archive process shutdown avoided: 0 active
Sat Jan 27 03:22:51 2024
Starting ORACLE instance (normal)
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
SCN scheme 3
Using log_archive_dest parameter default value
LICENSE_MAX_USERS = 0
SYS auditing is disabled
Starting up ORACLE RDBMS Version: 9.2.0.7.0.
System parameters with non-default values:
processes = 1200
timed_statistics = TRUE
shared_pool_size = 318767104
large_pool_size = 318767104
java_pool_size = 33554432
control_files = /oradata1/anbob/control01.ctl, /oradata2/anbob/control02.ctl, /oradata3/anbob/control03.ctl
db_block_size = 8192
db_cache_size = 21474836480
max_commit_propagation_delay= 10000
compatible = 9.2.0.0.0
log_archive_start = TRUE
log_archive_dest_1 = LOCATION=/archive
log_archive_format = anbob_%s.arc
db_file_multiblock_read_count= 16
fast_start_mttr_target = 300
undo_management = AUTO
undo_tablespace = UNDOTBS2
undo_retention = 3600
remote_login_passwordfile= EXCLUSIVE
db_domain =
instance_name = anbob
dispatchers = (PROTOCOL=TCP) (SERVICE=anbobXDB)
job_queue_processes = 10
hash_join_enabled = TRUE
background_dump_dest = /oracle/admin/anbob/bdump
user_dump_dest = /oracle/admin/anbob/udump
core_dump_dest = /oracle/admin/anbob/cdump
sort_area_size = 524288
db_name = anbob
open_cursors = 1300
star_transformation_enabled= FALSE
query_rewrite_enabled = FALSE
pga_aggregate_target = 4294967296
PMON started with pid=2
DBW0 started with pid=3
DBW1 started with pid=4
DBW2 started with pid=5
DBW3 started with pid=6
LGWR started with pid=7
CKPT started with pid=8
SMON started with pid=9
RECO started with pid=10
CJQ0 started with pid=11
Sat Jan 27 03:22:53 2024
starting up 1 shared server(s) ...
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
ARCH: STARTING ARCH PROCESSES
ARC0 started with pid=14
ARC0: Archival started
ARC1 started with pid=15
ARC1: Archival started
Sat Jan 27 03:22:53 2024
ARCH: STARTING ARCH PROCESSES COMPLETE
Sat Jan 27 03:22:53 2024
ARC1: Becoming the 'no FAL' ARCH
ARC1: Becoming the 'no FAL' ARCHARC1: Thread not mounted
Sat Jan 27 03:22:53 2024
ARC0: Becoming the heartbeat ARCH
ARC0: Becoming the heartbeat ARCHARC0: Thread not mounted
Sat Jan 27 03:22:53 2024
ALTER DATABASE MOUNT
Sat Jan 27 03:23:00 2024
Successful mount of redo thread 1, with mount id 1962011024
Sat Jan 27 03:23:00 2024
Database mounted in Exclusive Mode.
Completed: ALTER DATABASE MOUNT
Sat Jan 27 03:23:00 2024
ALTER DATABASE OPEN
Sat Jan 27 03:23:00 2024
LGWR: Primary database is in CLUSTER CONSISTENT mode
Thread 1 opened at log sequence 124471
Current log# 2 seq# 124471 mem# 0: /oradata1/anbob/redo21.log
Current log# 2 seq# 124471 mem# 1: /oradata2/anbob/redo22.log
Successful open of redo thread 1
Sat Jan 27 03:23:00 2024
SMON: enabling cache recovery
Sat Jan 27 03:23:00 2024
Successfully onlined Undo Tablespace 13.
Sat Jan 27 03:23:00 2024
SMON: enabling tx recovery
Sat Jan 27 03:23:00 2024
Database Characterset is ZHS16GBK
replication_dependency_tracking turned off (no async multimaster replication found)
Completed: ALTER DATABASE OPEN
Note:
这个库有配置1200最大进程数,但shared pool和large pool 给300M, db cache给20G, PGA给4G, 9i还没有AMM, ASMM自动内存管理,所以这内存配置不是很合理,日志最老是2013年,已持续运行了10几年,搜了一下没出现过ora-4031,看来SQL Hard Parse也并不大。有一些KGH层的ora-600错误
行 143264: ORA-00600: �ڲ�������룬����: [kghbigasp:ds], [0x110321408], [], [], [], [], [], [] 行 143265: ORA-00600: �ڲ�������룬����: [kghasp1], [0x110321448], [], [], [], [], [], [] 行 143266: ORA-00600: �ڲ�������룬����: [99999], [0x110321418], [], [], [], [], [], [] 行 171325: ORA-000060: Deadlock detected. More info in file /oracle/admin/anbob/udump/anbob_ora_1503370.trc. 行 191814: ORA-00600: internal error code, arguments: [12235], [], [], [], [], [], [], [] 行 245365: ORA-000060: Deadlock detected. More info in file /oracle/admin/anbob/udump/anbob_ora_1012148.trc. 行 252750: ORA-00600: �ڲ�������룬����: [kghfrf:nxt], [0x1103227E8], [], [], [], [], [], []
相信国产集中数据库做的好,还是有很大的市场可替代的, 如这套环境现在就有更多的选择,还有很多开始就未考虑oracle 费用,而大才小用选用oracle的中小客户。国产库别浮躁,踏实搞核心技术,要么距离只会更远。这个技术阶段的数据库还是需要大量的人力去补坑。如果明天oracle 9i 宣布免费开放使用或出售给国有公司,是否会影响你数据库迁移的决心?~_~!
对不起,这篇文章暂时关闭评论。