Oracle MySQL NoSQL DBA|数据管理,架构,监控与性能优化 --- NinGoo.net
NinGoo's blog
Ad. 招聘信息:猛击获得淘宝DBA工作机会 | 域名空间:DreamHost | 团购:拉手

Oracle11g新特性:只读表(read only table)

Oracle11g推出了一个新的特性,可以将table置于read only状态,处于该状态的table的不能执行DML操作和某些DDL操作。在Oracle11g之前的版本,只能将整个tablespace或者database置于read only状态。对于table的控制则只能通过权限来设定。

SQL> create table t(i int);

Table created.

SQL> insert into t values(1);

1 row created.

SQL> commit;

Commit complete.


SQL> alter table t read only;

Table altered.

SQL> select read_only from user_tables where table_name=’T';

READ_ONLY
——
YES

[继续阅读全文]

Oracle11g新特性:使用PIVOT/UNPIVOT进行行列转换

MS SQL Server 2005引入的pivot/unpivot关键字,对于行列转换确实非常的方便。所以Oracle11g也引入了这两个关键字,语法和SQL Server 2005的基本上差不错。


SQL> select * from sales;

PRODCUT QUARTER AMOUNT
———- ———- ———-
a 1 100
a 2 110
a 3 130
a 4 140
b 1 210
b 2 220
b 3 230
b 4 240

使用pivot转换显示:

SQL> select * from sales
2 pivot (sum(amount)
3 for quarter in
4 (1 as Q1,2 as Q2,3 as Q3,4 as Q4));

PRODCUT Q1 Q2 Q3 Q4
———- ———- ———- ———- ———-
a 100 110 130 140
b 210 220 230 240

[继续阅读全文]

Oracle11g SQLPLUS支持直接显示Blob数据

在Oracle10g及以前版本的sqlplus中,不能直接显示blob或者bfile类型的数据:

SQL> create table t(b blob);

Table created.

SQL> insert into t values(’1′);

1 row created.

SQL> select * from t;
SP2-0678: Column or attribute type can not be displayed by SQL*Plus

Oracle11g中,sqlplus的这个限制已经取消,可以在sqlplus中直接显示blob和bfile类型的数据:

SQL> create table t(b blob);

Table created.

SQL> insert into t values(’1′);

1 row created.

SQL> select * from t;

B
—————–
1

遭遇Oracle11g第一个bug

昨晚安装软件,dbca建库,一切顺利。弄完后就睡觉了,谁知道今天一开机,输入sqlplus,晕,报错了,sqlplus无法打开:

sqlplus: error while loading shared libraries:/oracle/11g/lib/libnnz11.so:

cannot restore segment prot after reloc: Permission denied

Google了一下,oracle论坛里有人提到metalink 454196.1,晕,遭遇bug了,还是个未正式发布的bug:Bug 6140224, “SQLPLUS FAILS TO LOAD LIBNNZ11.SO WITH SELINUX ENABLED ON EL5/RHEL5″ 。这个问题只影响到RadHat Enterprise Linux 5,说是其SELinux的模式默认为“Enforcing”,改成“Permissive”模式能暂时解决该问题。

以root身份,通过以下命令查询SELinux的模式:getenforce 默认应当返回Enforcing
通过以下命令更改模式:setenforce 0
然后再次查询getenforce,应该返回permissive了

以上修改在系统重启前有效,重启后系统又会变回默认的enforcing模式。如果需要启动即为permissive模式,则需要在grub的启动项中增加enforcing=0,例如

title Red Hat Enterprise Linux ES (2.6.18-8.EL)
root (hd0,0)
kernel /vmlinuz-2.6.18-8.EL ro root=/dev/VolGroup00/LogVol00 rhgb quiet enforcing=0
initrd /initrd-2.6.18-8.EL.img

另外,也可以通过setupfirewall configuration来设置SELinux的模式。


SQL> select * from v$version;

BANNER
——————————————————————–
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – Production
PL/SQL Release 11.1.0.6.0 – Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 – Production
NLSRTL Version 11.1.0.6.0 – Production


常用标签: oracle MySQL Oracle11g dba blog 新特性 oow oow2009 wordpress ASM

最新评论 | Recent comments