1.发现问题 最近使用备份软件对客户11G RAC数据库进行备份,发现备份失败查看日志发现数据库报 ORA-00245: control file backup failed; target is likely on a local file system错误。 2.问题分析 本报错出现于oracle 11.2.0.1.0及以后的版本中,应用于所有平台仅仅RAC环境会发生,因为oracle 11Gr2控制文件备份机制的改变,集群中的任何实例都要可以写入快照文件。当然这个文件也就要对所有实例可见,所以这个快照文件要设置在共享设备上。 我们现在看一下本机设置: [oracle@rac1 ~]$ rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Mon Jun 21 10:56:57 2021 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: ORCL (DBID=1601183368) RMAN> show all; using target database control file instead of recovery catalog RMAN configuration parameters for database with db_unique_name ORCL … [Read more...]
PostgreSQL 密码验证功能增强
密码验证介绍 passwordcheck 模块是在 CREATE ROLE 或者 CREATE USER 期间检查用户密码是否符合指定的规则模块如果密码比较弱,那么在此期间将会拒绝执行密码并返回一个错误。 该模块位于 srcpkg/contrib 目录下,安装后位于 $libdir 目录下,使用 shared_preload_libraries加载并重新启动服务器后生效。在该模块中,主要有两个规则判断,一个是用户名自身的判断,一个是密码长度少于8位的判断,一个是对是否包含用户名本身的判断。 密码验证增强功能 密码验证增强功能主要是在原有密码检查模块的基础上,增加了对密码中是否包含至少一个大小写字母,一个数字和一个特殊字符的判断。 实现 <code class="hljs">/*------------------------------------------------------------------------- * * passwordcheck_enchance.c * * Author: Sungsasong * * IDENTIFICATION * … [Read more...]
使用SQLBuilder功能在Swingbench中构建性能测试场景
1、Swingbench介绍 Swingbench是常用的一款进行压力测试和基准测试的软件,旨在对Oracle数据库(12c,18c,19c)进行压力测试。该软件可以生成负载并绘制事务/响应时间图表。SwingBench附带的代码包括6个基准,即OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle和StressTest。 当SwingBench附带的6个基准代码无法满足压力测试要求时,可以使用Swingbench提供的 SQLBuilder 工具和 Java API … [Read more...]
greenplum使用gpcopy数据传输方案
一 架构基础环境 主机mdw和备机mdwbak节点对等,都采用2+4架构。 1.1 主机列表 主机 IP地址 备机 IP地址 mdw 192.168.0.20 mdwbak 192.168.0.30 smdw 192.168.0.21 smdwbak 192.168.0.31 sdw1 192.168.0.22 sdw1bak 192.168.0.32 sdw2 192.168.0.23 sdw2bak 192.168.0.33 sdw3 192.168.0.24 sdw3bak 192.168.0.34 sdw4 192.168.0.25 sdw4bak 192.168.0.35 1.2 CPU及内存 所有节点都采用华为云服务器,CPU核心数为16核心,内存为32G,节点总数为12。主机备机都采用内部万兆网络。磁盘为单独挂载磁盘,采用高性能IO磁盘,实际最高读写性能为350M/s。 1.3 计算节点和镜像节点 计算节点primary数量为主备机都为24,镜像节点mirror数量为主备机都为24,总节点数量为48。 1.4 数据库版本 数据库采用greenplum官方发布的5.27.1开源版本。 二 环境磁盘IO和网络IO性能基准测试 2.1 … [Read more...]
Greenplum 数据同步方案—PostgreSQL技术文章晟数
更多精彩内容,请登录:ke.sandata.com.cn 一、目的 当前现有服务器状态为同机房两套 Greenplum 集群,节点数为 2 + 4。为满足未来灾备中心建设,需要构架高可用架构方案,以满足未来在生产系统集群出现不可恢复状态下,备用集群可以完全接管生产系统集群,以实现高可用架构。 二、方案 目前方案分为以下两种,一种为数据实时同步高可用方案,一种为允许数据同步有一定的延迟状态。 2.1 数据实时同步高可用架构(本文省略) 架构图如下(不做说明) 当主机中心由于不可抗拒因素或者硬件及认为因素不可用,备机完全接管主机。 2.2 … [Read more...]
【故障处理】再次安装Grid时,出现oraInventory目录 No such file or directory的错误
【故障描述】 /u02是之前单实例数据库的安装目录,客户执行删除脚本已经把数据库软件和实例都删除了,现在新装Grid软件,Grid目录指定在/u01下, 现在安装提示没有u02目录。截图如下: 【问题分析】 oracle软件安装时,通常都需要产品清单目录来保存软件安装的目录等信息,有点类似于window里面的注册表。再删除软件时,也需要读取产品清单目录里面的内容,来确定曾经安装的软件位置。 产品清单目录的位置,是保存在/etc/oraInst.loc文件中,如下: [cce] [root@sdedu ~]# cat … [Read more...]
PostgreSQL HLL插件介绍
前言 HLL是 HyperLogLog数据结构的简称。PostgresSQL通过插件的方式引入了这种新的数据类型hll。HyperLogLog是一个具有固定大小,类似于集合结构,用于可调精度的不同值计数。例如,在1280字节的hll数据结构中,它可以在很小的误差范围内估算出数百亿的不同值计数。 算法 hll可以被视为层次结构的不同集合/不同值计数算法的组合,并向上移动该层次结构的规则。为了区分上述描述算法,将其命名为以下: ♠ EMPTY 表示空集的常量值 ♠ EXPLICIT 集合中确定的,唯一的,排序完整的整数列表,该列表保持一个固定的基数 ♠ SPARSE HyperLogLog是基于映射的“惰性”实现,是一种基于概率集合的数据结构。仅将非零寄存器的索引和值存储在 map中,直到非零寄存器的数量超过固定的基数。 ♠ … [Read more...]
PostgreSQL备份工具 pgBackRest使用
前言 pgBackRest是一款开源的备份还原工具,目标旨在为备份和还原提供可靠易用的备份。 特性 并行备份和还原 备份操作期间压缩通常是其瓶颈所在。pgBackRest通过并行处理解决了备份期间压缩出现的瓶颈问题。 本地远程操作 自定义协议允许 … [Read more...]
PostgreSQL 查找需要收集的vacuum 表信息
前言 通常,在PostgreSQL中,由于经常需要对表进行 UPDATE 和 DELETE,因此表会产生碎片空间。在 PostgreSQL中,使用VACUUM 仅仅对需要执行 VACUUM 表将已删除的空间标识为未使用,以便以后重用这些空间,但是不能立即将占用的空间返还给操作系统,因此需要使用 VACUUM FULL,才可以释放空间,并立即将空间返还给操作系统。 实现脚本 记录收集表创建 [cce] CREATE TABLE IF NOT EXISTS tab_vacuum_record (sqltext text); [/cce] 收集需要VACUUM 表函数 [cce] CREATE OR REPLACE FUNCTION f_vacuum_tables() RETURNS void AS $FUNCTION$ DECLARE v_tablename text; v_dead_cond bigint; v_sql text; cur_tablename REFCURSOR; v_vacuum_record text; BEGIN v_vacuum_record := 'tab_vacuum_record'; OPEN cur_tablename FOR SELECT tablename FROM pg_tables WHERE tablename !~ '^pg|^sql'; LOOP FETCH cur_tablename INTO v_tablename; SELECT n_dead_tup INTO v_dead_cond FROM … [Read more...]
PostgreSQL libpq学习指南二
连接状态函数 PQdb 返回连接的数据库名称 PQuser 返回连接的用户名称 PQpass 返回连接的用户密码 如果连接密码没有被提供,那么将会尝试从 password_file 文件中获取。 PQhost 返回连接的服务器主机名称 PQhostaddr 返回连接的服务器IP地址 PQport 返回连接服务器的端口 PQtty 返回连接的DEBUG 终端信息 PQoptions 返回命令行传递的参数信息 PQstatus 返回连接的状态信息 示例: [cce] #include <stdio.h> #include <stdlib.h> #include "libpq-fe.h" int main(int argc, char **argv) { const char *conninfo; //定义连接信息 PGconn *conn; //连接数据库传递参数 if (argc > 1) conninfo = argv[1]; else conninfo = "dbname = postgres"; /* 连接数据库字符串 */ conn = PQconnectdb(conninfo); /*检查数据库是否连接成功 */ if (PQstatus(conn) != CONNECTION_OK) { fprintf(stderr, "连接数据库失败: … [Read more...]
近期评论