วันพุธที่ 14 ตุลาคม พ.ศ. 2558

LiveSQL คืออะไร

วันนี้อ่านเจอบน twitter แล้วพบว่า Oracle นั้นมี url - livesql.oracle.com แล้วมันคืออะไร?
LiveSQL มันคือ เครื่องมือที่ฟรีเหมาะกับคนที่ต้องการเรียนรู้การเขียน SQL, PL/SQL บน Oracle Database การใช้งานนั้นเราสามารถใช้งานบนบราวเซอร์ได้เลย โดยไม่ต้องติดตั้ง Oracle Database แต่เราต้องมี OTN account นะครับ

ดูแล้วน่าสนใจ ว่างๆ จะทดสอบแล้วเอามาเขียน Blog นะครับ

วันศุกร์ที่ 16 พฤษภาคม พ.ศ. 2557

เรียน 12c multitenant - จะเกิดอะไรขึ้นถ้า Connect PDB และสร้าง UNDO tablespace

อย่างที่เราพอทราบกันดีว่าฐานข้อมูลออราเคิล 12c multitenant (เมื่อเราสร้างฐานข้อมูลแบบ CDB) เราจะใช้ UNDO ร่วมกัน และหากต้องการสร้าง UNDO tablespace ขณะที่เรา connect อยู่ PDB (ไม่ใช่ CDB$ROOT) จะเกิดอะไรขึ้น....
ทดสอบ
SQL>   select name, cdb from v$database;
NAME      CDB
--------- ---
CDB       YES
SQL> select * from v$version;
BANNER                                                                               CON_ID
-------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production              0
PL/SQL Release 12.1.0.1.0 - Production                                                    0
CORE    12.1.0.1.0      Production                                                                0
TNS for Linux: Version 12.1.0.1.0 - Production                                            0
NLSRTL Version 12.1.0.1.0 - Production                                                    0
SQL> show user;
USER is "SYS"
SQL>
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT

SQL> alter session set container=PDB1;
Session altered.
SQL> show con_name
CON_NAME
------------------------------
PDB1
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/cdb/pdb1/system01.dbf
/u01/app/oracle/oradata/cdb/pdb1/sysaux01.dbf
SQL> create undo tablespace undotbs1 datafile '/u01/app/oracle/oradata/cdb/pdb1/undo01.dbf'; 
Tablespace created.
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
TEMP
SQL> select file_name from dba_data_files;
FILE_NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/cdb/pdb1/system01.dbf
/u01/app/oracle/oradata/cdb/pdb1/sysaux01.dbf 
SQL> !ls -l /u01/app/oracle/oradata/cdb/pdb1/
total 963292
-rw-r-----. 1 oracle oinstall  20979712 Apr  8 12:01 pdb1_temp01.dbf
-rw-r-----. 1 oracle oinstall 713039872 Apr  9 20:06 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 272637952 Apr  9 20:06 system01.dbf
SQL>
สรุปก็คือ คำสั่งไม่เกิด Error ใดๆ แต่ UNDO tablespace และ database file จะไม่ถูกสร้าง... 

วันพฤหัสบดีที่ 15 พฤษภาคม พ.ศ. 2557

เรียน 12c กับ DDL Log file

บนฐานข้อมูลออราเคิล 12c เราจะพบฟีเจอร์ที่เรียกว่า DDL log file จริงๆ แล้วเราจะพบบน 11.2 เช่นกัน
แต่สิ่งที่ต่างเราจะพบโฟลเดอร์ใหม่ $ADR_HOME/log/ddl เมื่อเราเซตค่า enable_ddl_logging เป็น true แล้วเรา ddl
- CREATE TABLE
- CREATE INDEX
- CREATE USER
- DROP USER
- ETC
เราจะพบ log.xml ที่ $ADR_HOME/log/ddl และสามารถใช้ adrci ในการอ่าน log file
ตัวอย่าง
[oracle@linux01 ddl]$ pwd
/u01/app/oracle/diag/rdbms/orcl17/orcl17/log/ddl
[oracle@linux01 ddl]$
[oracle@linux01 ddl]$ sqlplus  / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sat Apr 19 06:53:50 2014
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show parameter enable_ddl_logging
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
enable_ddl_logging                   boolean     FALSE
SQL> ALTER SYSTEM SET enable_ddl_logging=TRUE;
System altered.
SQL> conn demo
Enter password:
Connected.
SQL> create table C as select * from tab;
Table created.
SQL> Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[oracle@linux01 ddl]$
[oracle@linux01 ddl]$ ls log.xml
log.xml

[oracle@linux01 ddl]$ ls ../ddl_orcl17.log
../ddl_orcl17.log 
[oracle@linux01 ddl]$ cat log.xml
<msg time='2014-04-19T06:54:28.950+07:00' org_id='oracle' comp_id='rdbms'
 msg_id='opiexe:4181:2946163730' type='UNKNOWN' group='diag_adl'
 level='16' host_id='linux01' host_addr='192.168.111.60'
 version='1'>
 <txt>create table C as select * from tab
 </txt>
</msg>
[oracle@linux01 ddl]$
[oracle@linux01 ddl]$ adrci
ADRCI: Release 12.1.0.1.0 - Production on Sat Apr 19 06:58:17 2014
Copyright (c) 1982, 2013, Oracle and/or its affiliates.  All rights reserved.
ADR base = "/u01/app/oracle"
adrci> show home
ADR Homes:
diag/rdbms/orcl17/orcl17
adrci> SHOW LOG;
ADR Home = /u01/app/oracle/diag/rdbms/orcl17/orcl17:
*************************************************************************
Output the results to file: /tmp/utsout_24419_14020_1.ado
2014-04-19 06:54:28.950000 +07:00
create table C as select * from tab
หมายเหตุ ENABLE_DDL_LOGGING  เราต้องใช้ "Change Management Pack" license เมื่อเซตค่า TRUE