作者归档:鸡鸡哥的聪明伶俐的儿子

关于鸡鸡哥的聪明伶俐的儿子

嗜抽烟,嗜吃肉,常睡觉晚起,熬夜,看新闻,喜体育栏目,会操作电脑,会操作服务器,能做些别人不屑于做的事情。厌做饭,恶洗碗,不洗澡,不刷牙,不剃胡须,不喜逛超市,重压之下偶去之,无上进心,无恒心,无毅力。 1988-1998年,虚度人生 2001-2013年,懵懵懂懂忽然就有孩子有老婆有,匆匆间父亲去世,匆匆半个人生没有了 2013- 知道自己需要什么,知道自己该做什么,知道自己的是个什么样的人,重新上路,明明白白活自己。 ------鸡鸡哥 2013.02.28 老了,以后得改称老鸡鸡哥了,继续努力吧 -----鸡鸡哥 20150517

oracle 的块,区,段

1. 段区块是 Oracle 数据库的逻辑上的概念。块属于区,区属于段

2. Oracle 在创建表时,会分配一个段来装这个表。可以理解为一个表就是一个段。

3. 第 2 点说的不够准确。实际上, Oracle 在创建空表,在没有添加数据时,是不分配逻辑结构的(为了节省更多的空间),只有在添加数据的时候才会分配逻辑结构。当然,一个表还是一个段。

4. 区是由很多个连续的块组成。 Oracle 在创建好表,添加数据时,会产生一个新的区, Oracle 会往这些新的区中添加数据,这些区由很多个块组成。当这个区用完之后,会接着产生下一个区。

5. 块的大小默认是 8k, 可以修改。

6. Oracle 数据库是由很多个表组成,表又是由很多数据行来组成。

7. 每个块中会有多个数据行,一个数据行通常只能在一个块中。因为一个块是 8k, 一行数据肯定远小于这个数值,所以一个块可以装很多数据,够装了。

8. 块是 Oracle I/O 的最小单位。 I/O 是指从磁盘到内存的过程。数据是存放在磁盘上的。所以通常我们检索一行数据, Oracle 在磁盘中,不可能只调取一行数据,最少是调取一个块,也就是 8k 。比如我要读取的一行数据大小为 100 字节,但是 Oracle 每次读这行数据时,都会读取它所在的块,也就是 8k.

oracle的savepoint和OCP

一、基本概念

保存点savepoint是事务中的一点,通过rollback可以返回到某个保存点。一个事务中可以有多个保存点。一旦事务提交,该事务中的保存点会自动被删除,那么无论刚才做了多少个保存点,都统统没有了。

SQL> savepoint sp;

Savepoint created

SQL> delete from mytable;

15 rows deleted

SQL> rollback to sp;

Rollback complete

SQL> select count(*) from mytable;

COUNT(*)
———-
15

删除操作就被回退了。

 

二、详解

事务的几个重要操作
1 设置保存点 savepoint a
2 取消部分事务 rollback to a
3 取消全部事务 rollback
若执行SQL> commit;提交操作,则该事务中所有保存点都不存在了。如果没有手动执行commit而是exit会自动提交。

oracle的闪回区

闪回恢复区是为Oracle 数据库中所有与恢复相关的文件和活动提供的一个统一的存储位置。 将数据库从介质故障中完全恢复过来所需的全部文件都位于闪回恢复区中。 可以在闪回恢复区中创建的与恢复相关的文件包括:存档重做日志文件、控制文件、由Recovery Manager (RMAN) 创建的备份、闪回日志和更改跟踪文件。

oracle asm,关键字:dbca 11g select disk group is null

1、执行:

/usr/sbin/oracleasm scandisks和/usr/sbin/oracleasm listdisks

查看执行结果, listdisk可以正常的将磁盘组可显示出来.


2
、切换到 grid 用户下 ,查看ASM实例是否启动,并执行查询 

sqlplus / as sysdba

select group_number,path,mount_status,state from v$asm_disk;

select group_number,offline_disks,state from v$asm_diskgroup;

查看磁盘以及磁盘组及其磁盘状态都正常(正常状态为mount);


3
、用户组判断

id oracle 和id grid

查看oracle用户是否在admdba组里面,我这里的问题是把oracle加入到asmadmin组,问题解决

usermod -G asmadmin,asmdba,asmoper,dba,oper oracle


4
、查看oracle用户和grid用户的$ORACLE_HOME/bin/oracle文件的权限

$ORACLE_HOME/bin/oracle 该文件的默认权限为6751权限,有个s权限,如果s权限消失,这时通过OS认证将不能登录到数据库;

经过对问题的逐一排查,终于找到了问题的所在:

执行 chmod +s oracle 解决问题

(?i)正则表达式

Q:经常看见的正则前面的 (?i) (?s) (?m) (?is) (?im) 是什么意思?
A: 称为内联匹配模式,通常用内联匹配模式代替使用枚举值RegexOptions指定的全局匹配模式,写起来更简洁。
(?i) 表示所在位置右侧的表达式开启忽略大小写模式
(?s) 表示所在位置右侧的表达式开启单行模式。
更改句点字符 (.) 的含义,以使它与每个字符(而不是除 \n 之外的所有字符)匹配。
注意:(?s)通常在匹配有换行的文本时使用
(?m) 表示所在位置右侧的表示式开启指定多行模式。
更改 ^ 和 $ 的含义,以使它们分别与任何行的开头和结尾匹配,
而不只是与整个字符串的开头和结尾匹配。
注意:(?m)只有在正则表达式中涉及到多行的“^”和“$”的匹配时,才使用Multiline模式。
上面的匹配模式可以组合使用,比如(?is),(?im)。
另外,还可以用(?i:exp)或者(?i)exp(?-i)来指定匹配的有效范围。

附:

.表示除\n之外的任意字符
*表示匹配0-无穷
+表示匹配1-无穷
多行模式参考实例:点击打开链接

ssh fingerprint 的确认,StrictHostKeyChecking

方式一:在命令行中添加 -o “StrictHostKeyChecking no”
执行ssh或scp命令时,系统就会自动把远程主机的rsa key加入到.ssh/known_hosts文件中。

ssh -o “StrictHostKeyChecking no” root@host
StrictHostKeyChecking no|ask|yes:

StrictHostKeyChecking代码了远程主机的host key确认方式。有如下几种设置。

no代表不做任何确认,直接通过验证,把rsa加入到.ssh/known_hosts。

ask为默认值,需要用户手动确认是否通过验证,是否把远程主机加入到.ssh/known_hosts中。

yes为最高安全级别,如果本地没有相应的rsa key则会直接拒绝连接,并出给提示。

mysql的any_value函数

SELECT ANY_VALUE(ID),USER_ID,ANY_VALUE(problems),ANY_VALUE(last_updated_date) FROM t_iov_help_feedback GROUP BY USER_ID;

MySQL有any_value(field)函数,它主要的作用就是抑制ONLY_FULL_GROUP_BY值被拒绝。
这样sql语句不管是在ONLY_FULL_GROUP_BY模式关闭状态还是在开启模式都可以正常执行,不被mysql拒绝。
any_value()会选择被分到同一组的数据里第一条数据的指定列值作为返回数据。

解决:
select count(*) c,truename from creative_baoming where cid=33 group by userid order by c desc
> 1055 – Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘baoming_cc.creative_baoming.truename’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
> 时间: 0.021s