这篇文章其实在草稿箱里面躺了快1年了,只是太长,长的我都没有信心完成它了。不过,放着可惜,还是拆分一下share出来吧。 关于flex cluster 1. 有hub node和leaf node的概念,目前数据库只能放在hub node,leaf node据说是用于放耦合度较低的服务,如weblo […]
mysql学习笔记
说实在话,我接触过mysql唯一的机会是更新我的wordpress的博客。mysql对我来说绝对是个陌生的领域。 有幸旁听了一次mysql的培训,受益匪浅,做一下笔记以备后面继续学习的时候可以查阅。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
MySQL结构: connector(native c api,jdbc,odbc) connection pool sql interface,parser,optimizer,cache and buffer pluggable storage engines(myisam,innodb,bdb,memory,archive...) file system, 企业版:cluster,partition backup,security 存储引擎 myisam:表锁,3个文件定义一个表,不支持事物、外键约束,适合读取 innodb:支持事物,行锁,有缓冲池,在关闭autocommit的情况下,和myisam性能类似。 memory:临时中转表 参数文件:my.cnf (my.ini在windows上),show variables like '%xxxxx%' 日志文件:(1)错误日志文件 show variables like '%log_err%'可以找到错误日志文件的路径。(2)查询日志文件,show variables like '%general%' 平时关闭。(3)慢查询日志文件 show variables like '%slow%'; 可能会导致文件体积过大 (4)二进制日志文件,也就是归档文件 socket文件: pid文件:mysql进程起来后,会把进程写到该文件 表定义文件:frm文件,明文,可以看表结构定义 数据文件:ibd文件,以innodb引擎的数据文件 启动: /etc/init.d/mysql start 或者/usr/bin/mysqld_safe & 或者$MYSQL_HOME/bin/mysql_safe & 关闭: mysqladmin -uroot -p shutdown 连接: mysql -h <host IP address> --protical=TCP -port 3318 -u <username> -p <password> use <instance_name> show tables; sekect * from <table_name>; 用户 用户名格式:username@hostname 如jimmy@hostname create user <username> identified by <password>; grant usage on *.* to <user>; show grant for <user>; mysql> select user,host from mysql.user; --mysql库的user表 mysql> show grants for deployer@'%'; mysql库 information_schema库:记录了元数据 帮助: help show database help show processlist \G 注:\G表示行转列,方便显示结果 mysql支持的数据类型:数字类型,字符类型,日期类型,null 字符集 mysql安全管理: 创建用户制定IP等等 mysql数据库备份:全备和备份binlog mysql vs oracle 垂直扩展性 oracle:可以通过增加多个cpu提升处理能力 mysql:在5.6之前,提升不高 oracle:使用SAN mysql:本地盘 高可用: oracle:vcs,rac,dg/adg,ogg mysql:replicate 主从 mysql replicate: GTID的复制:GTID即global transaction ID,mysql 5.6以上 master slave:I/O thread(读取binlog,写入到relay log), sql thread(读取relay log,replay relay log。写入到当前slave库) mysql> show slave status \G 异步:生成binlog后,不会管是否传输到slave 半同步:传一个binlog为relay log,会自动降级为异步模式。 mysql优化: 参数优化:最大连接数,缺省字符集,缺省存储引擎,键缓存大小(给myisam用),innodb缓冲池大小,innodb引擎字典缓冲,查询缓冲大小,设置表缓冲,慢查询时间,慢查询日志,超时设置参数 注,几个和oracle不太一样的参数: autocommit=no(建库时需要为on) sql_mode=strict_trans_tables,no_auto_create_user,no_auto_value_on_zero transaction isolation=read-committed 数据库状态: 1.看累计状态 mysql>status 2.看线程状态: mysql> show processlist 3.看全局运行状态 mysql> show global status |
12c的网络设置
12c开始,对于pdb一般都是需要tnsname登录了,在这里记录一下主要的3个网络文件配置。 listener.ora
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# listener.ora Network Configuration File: /u01/ora12c/app/oracle/product/12.1.0/db_1/network/admin/listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = ora12c) (ORACLE_HOME = /u01/ora12c/app/oracle/product/12.1.0/db_1) (SID_NAME = ora12c) ) (SID_DESC = (GLOBAL_DBNAME = pdb1) (ORACLE_HOME = /u01/ora12c/app/oracle/product/12.1.0/db_1) (SID_NAME = ora12c) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.132)(PORT = 1522)) ) ADR_BASE_LISTENER = /u01/ora12c/app/oracle |
tnsnames.ora
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# tnsnames.ora Network Configuration File: /u01/ora12c/app/oracle/product/12.1.0/db_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. ORA12C = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.132)(PORT = 1522)) ) (CONNECT_DATA = (SERVICE_NAME = ora12c) ) ) PDB1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.132)(PORT = 1522)) ) (CONNECT_DATA = (SERVICE_NAME = pdb1) ) ) |
sqlnet.ora […]
Job中报错ora-1493,no data found
客户这边遇到个问题,他们有个package,在job中定期运行,但是会出现时不时的报错ora-1493,no data found。 定位引发ora-1493,no data found的语句为:
1 2 3 4 5 |
SELECT sid, serial# INTO v_sid, v_serial# FROM v$session WHERE sid = (SELECT MAX(sid) FROM v$session WHERE audsid = userenv('sessionid')); |
这样的语句,放在客户端中发起,是没有 […]
11g启动报错ORA-00371: not enough shared pool memory
问题: 11g的一个库,启库时,报错shared pool不够。由于我是在一个测试的机器上,我不需要那么多的share pool,我只需800M的shared pool就够了。 但指定shared pool的大小为800M在初始化文件中,起库就报错: SQL> startup ORA-00371: […]
data file init write等待
发生data file init write的等待是数据文件正在发生扩展,在11g中,这往往和SMCO和Wnnn进程的自动预扩展有关。 在生产环境中,如果在生产高峰期出现预扩展,可能会造成短暂的hang住,或者CPU突然的升高,或者查询dba_free_space的hang住。但是,预扩展这个功能是 […]
删除分区缓慢的一次分析
在客户处遇到个问题,客户昨晚清理数据,删除一些表的分区,第一个表跑了20多分钟,但是差不多数据量的另外一个表,跑了好几个小时才完成。为何类似的数据在drop 分区的时候,有那么大的差异? 检查了改删除分区的语句,发现是update了global索引,并且,还用到了parallel 8的并行。 [cr […]
收集统计信息degree不生效的问题
在10.2以上的版本,收集统计信息,如使用dbms_stats.gather_table_stats,还是在ebs中调用fnd_stats.GATHER_TABLE_STATS,有的时候虽然用了degree的参数,如degree=8,但是会发现仍然不使用并行。在10046的trace中,我们可以看到 […]
ORA-00000 normal, successful completion
当hosts文件配置错误时,用sqlplus登录后startup nomount,就会报错ORA-00000
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
[oracle11g@testdb2 dbs]$ sqlplus "/ as sysdba" SQL*Plus: Release 11.2.0.4.0 Production on Mon Apr 21 13:48:32 2014 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected. SQL> startup nomount ORA-00000: normal, successful completion SQL> alter database mount; ERROR: ORA-01012: not logged on SQL> [root@testdb2 etc]# cat hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.56.250 wrong_server #192.168.56.132 testdb2 |
修改host文件后:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[root@testdb2 etc]# cat hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 #192.168.56.250 wrong_server 192.168.56.132 testdb2 再次启动: SQL> startup nomount ORACLE instance started. Total System Global Area 1052274688 bytes Fixed Size 2259840 bytes Variable Size 1023411328 bytes Database Buffers 20971520 bytes Redo Buffers 5632000 bytes SQL> 正常。 |
另外,除了写错,如果丢失hosts文 […]
台湾之行(DAY ONE and DAY TWO)
这个月休了2周的年假,去了一趟台湾。在饱览台湾的人文之美后,我首先要感谢一下我的公司,甲骨文中国,如果放在别的单位,我估计我休假两周回来后,是否还留有我的岗位……有朋友说,回来之后写个攻略吧,嗯……怎么说呢,如果你按照我的攻略走,你也许不能完全体会到台湾的人文之美,台湾的美,要靠你搭乘它的捷运、扶梯 […]
如何还原virtualbox导出的RAC镜像文件
在virtualbox中建立虚拟机,往往是3个文件夹:节点1(ol6-121-rac1),节点2(ol6-121-rac2),共享存储文件夹(ol6-121-rac)。当我们选择“管理”-“导出虚拟电脑”,导出成ova文件备份,就能看到2个主机,每个主机一个ova文件。另外,细心的你可能会发现,在备 […]
当Parallel DML遇到分布式事务、分区表和LOB时
今天遇到一个问题,某sql的并发度虽然已经全部获得但是只有少数几个slave干活。
1 2 3 4 |
alter session enable parallel dml; insert /*+ parallel(t 16)*/一个本地分区表t select /*+ full(a parallel(a 32))*/* from 远程分区表a@dblink where 时间>=xxxx and 时间<xxxxx; |
insert要求有16个并发,虽然在v$PX_SESSION看到其获得的degree是16,但是并不是这16个slave都在干活,从sqlmonito […]