物理DG角色切换
1.角色切换分为两种:一种是切换角色,一种是在主库故障的时候,切换至备库,这个时候如果不是在最大保护或者最大可用性的模式下,有可能会导致数据丢失。如果主库开启了闪回,那么主库还是有可能成为新的主库的备库的。2.切换之前的准备:1>可以查看是否有gap:SQL> SELECT STATUS, GAP_STATUS FROM V$A...
物理DG 日志传输以及应用过程
mysql 中的主备会经常碰到主库和备库日志传输延迟,其中一个role突然宕机,这时候会发生什么?最近刚好在生产环境中碰到切换物理DG的需求,参照学习,准备研究一下oracle中主备切换时日志未及时应用,oracle怎么处置!1.redo日志同步传输:事务会等到redo日志传输到所有可以到达的备库之后再提交。这种一般是...
ORACLE buffer cache 原理 --LRU链表(参照学习:oracle内核技术揭秘)
OBJ-Q对象列表在合并IO的过程中起了很大作用,因为脏块在从CKPT-Q中移到对象列表的时候会将不同对象的块链在一起,这样更容易找到连续的块进行合并。LRU链表一共包括4个链表,主LRU、辅助LRU、主LRUW和辅助LRUW,前两者是在buffer cache中寻找可以覆盖的buffer块,后两者也是DBWR用于写脏块的。物理读时,数据...
ORACLE buffer cache 原理 --检查点队列链表(参照学习:oracle内核技术揭秘)
CKPT-Q 和 LRU在update过程中,首先在前文所讲的CBC Latch的保护下修改数据,之后进程先持有 checkpoint queue latch,然后将5号文件中的1234号块加入到检查点队列(CKPT-Q),当然还有产生对应的redo数据。再次update时 会在产生一个新的redo数据,并不会影响CKPT-Q,所以只有在不脏变脏的过程中才需要持有 checkpoi...
ORACLE buffer cache 原理 --hash链表(参照学习:oracle内核技术揭秘)
对于一个块,磁盘中叫block,内存中叫buffer。如何知道一个块是否‘在buffer cache中呢?oracle 采用的是hash算法。根据文件号块号来计算hash值,根据该值 定位到想用的bucket每个hash bucket中都保存有一个指向cache buffer cache链表的链表头。bucket ——> buffer head (file_id,block_id)CBC链表...
oracle内存管理
1> 设定MEMORY_TARGET 和MEMORY_MAX_TARGET的值 可以指定自动管理内存方式,MEMORY_TARGET是可以动态调整的参数,则不是动态且有限制,所以不宜设置太高!2> 内存结构3>如果没有设置MEMORY_MAX_TARGET,将自动将memory_target的值赋予它!如果memory_target没有设置的话,启动的时候...
数据导入导出EXP/IMP
?1 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中?? exp system/manager@TEST file=d:\daochu.dmp full=y?2 将数据库中system用户与sys用户的表导出?? exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)?3 将数据库中的表tab...
安装oracle时内核参数的含义
/*/etc/sysctl.conf*/kernel.shmall = 4294967296 --设置共享内存总页数。这个值太小有可能导致数据库启动报错。很多人调整系统内核参数的时候只关注SHMMAX参数,而忽略了SHMALL参数的设置。这个值推荐设置为物理内存大小除以分页大小。--getconf PAGE_SIZE 获取分页大小kernel.shmmax = 2147483648 -...
安装ORACLE时在Linux上设置内核参数的含义
前两天看到一篇Redhat官方的Oracle安装文档,对于Linux内核参数的修改描述的非常清晰。 安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数...
数据导入SQLLDR
create table test_lff(id number, name varchar2(10), memo varchar2(10) ); commit;--1.将所有数据罗列出来的导入方法 D:\test_lff.ctloptions(skip=1)load datainfile *truncate into table test_lffFIELDS TERMINATED BY ',' OPTIONALLY...
游标的使用实例
DECLARE V_SQL VARCHAR2(1000);BEGIN FOR X IN (SELECT TABLE_NAME, PARTITION_NAME FROM USER_TAB_PARTITIONS W...
数据库维护常用操作4--表空间操作
select* from dba_data_files;1. 创建表空间:SQL> create tablespace lifenfang datafile '/s01/oracle/oradata/test_1.dbf' size 10M autoextend on next 50M;Tablespace created.2. 创建一个表使用这个表空间:create table daodao_1 tablespace lifenfang as select * from...
数据库维护常用操作3--DDL语句查看
2>常用的查询函数相关定义的语句: select owner,object_name,object_type from dba_objects where object_name='GET_INFO'; select text from user_source where name='TEST_FUNC_1';--查出函数定义信息 1.得到一个表或索引的ddl语句 SELECT DBMS_METADATA.GET_DDL('TABLE','DEP...
数据库维护常用操作命令2--约束
---数据库开发基础---约束1,约束的分类primary key(PK)主键约束,foreign key(FK)外键约束,unique(UK)唯一约束,check约束,NOT null约束(NN)???? -------有时候说的是四种约束,就是除了这个约束外的其他四种主键约束,2.约束的创建语法1>.主键约束create table t(x int,y int,primary ...
数据库维护常用操作命令1-表操作
-- Create table (分区表)create table T_ORD_ORDER( order_id VARCHAR2(100) not null, order_no &n...
日期函数以及常见的日期表达
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';---设置日期显示格式current_date 是客户端的时间,也就是当前会话的时间alter session set time_zone='+09:00';---设置日期地区 select to_char(sysdate,'fmMonth') from dual;-----几月select to_char(sysdate...
数据库开发基础--层次查询+
with?bus?as?(select?'A'?dstart,?'B'?dend,?'120'?distance????from?dual??union?all??select?'B'?dstart,?'C'?dend,?'200'?distance????from...
数据库开发基础--层次查询+
with bus as (select 'A' dstart, 'B' dend, '120' distance from dual union all select 'B' dstart, 'C' dend, '200' distance from...
数据库开发基础---常见面试题
create table a (t varchar2(20)) alter table a add s varchar2(20); alter table a drop column s; ---删除子分区 alter table 分区表名 drop partition ...
聊聊四种Oracle数字取整函数
“四舍五入”是我们最早接触的数学概念之一。我们日常开发系统中,数字取整也是我们最常接触的一种需求样式。在财务相关系统中,四舍五入的算法有时候对系统用户造成巨大的影响。 在Oracle SQL中,提供了四种...