蓝皮书的自留地

运筹帷幄,决胜千里

[toc]

问题概述

RAC 2 节点, scheduler job 的分配机制是什么样子的?Oracle19c RAC 两个节点,每个节点内存512G,节点1 的一个内存坏掉,剩余256G 内存,发现20个job 都在节点2上运行了。

问题原因

有两个参数可以控制 scheduler job 的 runing 机制: INSTANCE_IDINSTANCE_STICKINESS,对应的默认值分别为空和TRUE,也就是如果不设置的话,scheduler JOB 遵循负载均衡的算法将 job 分配到负载轻的实例上。

阅读全文 »

[toc]

适用范围

ORACLE ADG 备库搭建过程,log_file_name_convert 参数配置如下,导致无法创建redo log file 。
*.log_file_name_convert='+DATA/dbrac/','/u01/app/oracle/oradata/orcldg'

问题概述

ORACLE ADG 备库搭建过程,log_file_name_convert 参数配置如下,导致无法创建redo log file 。
*.log_file_name_convert='+DATA/dbrac/','/u01/app/oracle/oradata/orcldg'
具体报错如下:

阅读全文 »

[toc]

适用范围

ORACLE 12c、19c

问题概述

impdp 操作使用DISABLE_ARCHIVE_LOGGING:Y 参数后,报ORA-39126: Worker unexpected fatal error in KUPW$WORKER.CHANGE_ARCHIVE_LOGGING 等一系列错误信息。

问题分析

impdp 的参数文件信息如下:

阅读全文 »

[toc]

适用范围

创建索引组织表(分区表)及查询其使用的表空间名称

问题概述

通过 USER_TAB_PARTITIONS 视图无法查询索引组织表(分区表)使用的表空间名称。

问题原因

由于索引组织表的本质是索引,索引查看分区需要通过user_ind_partitions 视图进行查询,以下是根据 ORACLE docs SQL Language Reference 手册 手册创建的索引组织表(分区表)及查看使用的表空间的名称例子。

阅读全文 »

[toc]

适用范围

oracle 19c dataguard 主库alert日志告警:TNS-12564: TNS: 拒绝连接 TT00 (PID:2865): Error 12528 received logging on to the standby”;主库v$archive_dest报错:archive_dest ORA-16058: 未装载备用数据库实例

阅读全文 »

[toc]

在一次处理 ORACLE 19.5 DG 密码错误的过程中偶然发现 DG 的密码文件在通过 sqlplus sys/paxxx@dgtns  远程登录之后,md5  值就会发生一次变化,通过搜索mos 查到如下文章:Why do the timestamp and md5 hash values of a password file change? (Doc ID 2821102.1)

出现此现象的前提条件是 :密码文件通过 orapwd 创建   并且没有使用 format 参数(默认 format=12.2),或者 format=12.2 设置为 12.2 ,会出现md5 在每次远程登录之后,就会发生变化,这是由于从 ORACLE 12.2.0.1 and later, oracle 引入了 密码限制和密码复杂度满足度的要求,同时密码文件也会记录 last login time 也就是上一次的登录时间,从而出现了密码文件的md5会发生变化。

阅读全文 »

MySQL 8.0.26 之后数据库参数变化

使用之前的 MySQL 8.0 的参数文件安装完成 8.0.26 之后发现数据库日志报了 The syntax ‘log_slave_updates’ is deprecated and will be removed in a future release. Please use log_replica_upda tes instead. 等一堆 Warning,具体如下:

阅读全文 »

[toc]

MySQL 如何确认从库的 IP

show slave hosts

1
2
3
4
5
6
7
8
show slave hosts;
mysql> show slave hosts;
+------------+---------------+------+------------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID |
+------------+---------------+------+------------+--------------------------------------+
| 1647312172 | 192.168.11.14 | 3306 | 1647312173 | af5b1a5b-a409-11ec-b404-0050568a5583 |
+------------+---------------+------+------------+--------------------------------------+
1 row in set (0.00 sec)

主库上通过 show slave hosts 可以很直观的显示从库信息,当然包含ip了。

在从库上执行 show slave hosts 是没有结果的。

1
2
mysql> show slave hosts;
Empty set (0.00 sec)

如果不知道当前主机是主库还是从库,可以通过 show slave hosts 来判断,如果有信息说明当前是主库,同时也会显示从库的信息。如果没有信息,然后通过show slave status\G 进一步确认从库信息,同时也可以 Master_Host 看到主库的ip信息。

show process list

阅读全文 »

[toc]

今天在进行 yum 安装软件包的时候,非常慢,然后进行了 kill -9 操作,准备重新 make cache,出现了Thread died in Berkeley DB library错误,搜索一番进行如下解决。

os :CentOS Linux release 7.6.1810 (Core)

1
2
3
4
5
6
7
[root@bjproxy log]# yum make cache
error: rpmdb: BDB0113 Thread/process 12349/140335812044608 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
阅读全文 »

PDB的创建、插拔、克隆等功能测试

[toc]

PDB的创建、插拔、克隆等功能测试

https://docs.oracle.com/database/121/ADMIN/cdb_plug.htm#ADMIN13549

普通 pdb

1
2
3
create pluggable database notedpdb admin user pdbadmin identified by "Password123";
alter pluggable database notedpdb open instances=all;
alter pluggable database notedpdb save state instances=all;

导入示例数据

1
@mksample Password123 Password123 Password123 Password123 Password123 Password123 Password123 Password123 users temp /tmp/log localhost:1521/notedpdb

通过 配置环境变量可以很方便的看到是在哪个 pdb 下面操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
vi $ORACLE_HOME/sqlplus/admin/glogin.sql

define _editor=vi
set serveroutput on size 1000000
set trimspool on
set long 5000
set pagesize 5000
set linesize 256
column plan_plus_exp format a80
column global_name new_value gname
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
set termout off
define gname=idle
column global_name new_value gname
select lower(user)||'@'||'('||(select distinct sid from v$mystat ) ||'_'||(select sys_context('USERENV','CON_NAME') from dual)||')' global_name from v$instance;
set sqlprompt '&gname> '
set termout on
阅读全文 »
0%