Đỉnh NGUYỄN

life's a journey not a destination


Leave a comment

rlwrap – Tiện ích lịch sử dòng lệnh trên SQL*Plus và RMAN


Tiện ích rlwrap (readline wrapper) cung cấp dữ liệu lịch sử các lệnh đã gõ làm đầu vào cho bất kỳ lệnh nào khác. Đây là bổ sung thật sự hữu ích cho SQL*Plus và RMAN trên Linux. Bài viết giải thích cách cài rlwrap và thiết lập nó cho SQL*Plus và RMAN.

Tải về phiên bản rlwrap mới nhất từ địa chỉ:

* http://utopia.knoware.nl/~hlub/rlwrap/

Unzip và cài phần mềm bằng các lệnh sau:

# gunzip rlwrap*.gz
# tar -xvf rlwrap*.tar
# cd rlwrap*
# ./configure
# make
# make check
# make install

Chạy các lệnh sau, hoặc tốt hơn là thêm khai báo vào tập tin “.bash_profile” của tài khoản oracle.

alias rlsqlplus='rlwrap sqlplus'
alias rlrman='rlwrap rman'

Bây giờ bạn có thể khởi động SQL*Plus hoặc RMAN dùng “rlsqlplus” và “rlrman”, và bạn sẽ có lịch sử các lệnh và dòng lện hiện tại có thể được thay đổi dùng các phím mũi tên và các phím xóa.

Advertisements


Leave a comment

Restore và Recover cơ sở dữ liệu Oracle 11g sang host mới


Bài viết hướng dẫn tạo bản copy của CSDL trên host mới. Trong trường hợp này DBID của CSDL trên host mới sẽ giống với trên host cũ. Nhưng nếu mục tiêu là tạo ra bản copy mới của cơ sở dữ liệu(CSDL) dùng RMAN DUPLICATE; điều này sẽ thay đổI DBID của CSDL trên host mới.

Trong ví dụ này, CSDL ban đầu tên là ORCL chạy trên máy OEL1. Tôi sẽ thực hiện backup trên máy OEL1, copy bản backup sang máy OEL2; thực hiện restore và recover trên máy OEL2.

1. Trên máy OEL1 (máy nguồn)

1.1 Thực hiện backup Parameter file, Control files và toàn bộ Data files.

[oracle@oel1 ~]$ rman target /

Recovery Manager: Release 11.1.0.6.0 - Production on Sun Apr 15 08:19:26 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database: ORCL (DBID=1283774808)

RMAN> backup database;

Starting backup at 15-APR-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=137 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/ORCL/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/ORCL/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/ORCL/example01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/ORCL/undotbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/ORCL/users01.dbf
channel ORA_DISK_1: starting piece 1 at 15-APR-12
channel ORA_DISK_1: finished piece 1 at 15-APR-12
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_04_15/o1_mf_nnndf_TAG20120415T081939_7rn8m0d6_.bkp 
tag=TAG20120415T081939 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:04:21
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 15-APR-12
channel ORA_DISK_1: finished piece 1 at 15-APR-12
piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_04_15/o1_mf_ncsnf_TAG20120415T081939_7rn8vhyx_.bkp 
tag=TAG20120415T081939 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:04
Finished backup at 15-APR-12

RMAN> 

1.2 Copy bản backup trên sang máy OEL2

[oracle@oel1 ~]$ scp /u01/app/oracle/flash_recovery_area/ORCL/backupset/
2012_04_15/o1_mf_nnndf_TAG20120415T081939_7rn8m0d6_.bkp oracle@OEL2:/ORCL_backup/
Password:
o1_mf_nnndf_TAG20120 100% |***********************************************| 1120 MB 00:59
[oracle@oel1 ~]$ scp /u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_04_15/
o1_mf_ncsnf_TAG20120415T081939_7rn8vhyx_.bkp oracle@OEL2:/ORCL_backup/
Password:
o1_mf_ncsnf_TAG20120 100% |***********************************************| 940 KB 00:00

1.3 Xác định DBID của CSDL nguồn

Ở bước đầu tiên khi dùng RMAN đã thấy xuất hiện DBID

connected to target database: ORCL (DBID=1283774808)

Hoặc có thể dùng lệnh sau đây

[oracle@oel5 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on Sun Apr 15 08:43:13 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select dbid from v$database;

      DBID
----------
1283774808

SQL> 

2. Trên máy OEL2 (máy đích)

2.1 Gán DBID và restore spfile vào pfile

[oracle@oel5 ~]$ rman target /

Recovery Manager: Release 11.1.0.6.0 - Production on Sun Apr 15 08:54:06 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

connected to target database (not started)

RMAN> set dbid 1283774808

executing command: SET DBID

RMAN> startup nomount

startup failed: ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/11.1.0/db_1/dbs/initORCL.ora'

starting Oracle instance without parameter file for retrieval of spfile
Oracle instance started

Total System Global Area     159019008 bytes

Fixed Size                     1298584 bytes
Variable Size                 67112808 bytes
Database Buffers              83886080 bytes
Redo Buffers                   6721536 bytes

RMAN> restore spfile to pfile '/u01/app/oracle/product/11.1.0/db_1/dbs/initORCL.ora' 
from '/home/oracle/ORCL_backup/o1_mf_ncsnf_TAG20120415T081939_7rn8vhyx_.bkp';

Starting restore at 15-APR-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=98 device type=DISK

channel ORA_DISK_1: restoring spfile from AUTOBACKUP /home/oracle/ORCL_backup/o1_mf_ncsnf_TAG20120415T081939_7rn8vhyx_.bkp
channel ORA_DISK_1: SPFILE restore from AUTOBACKUP complete
Finished restore at 15-APR-12

RMAN> 

2.2 Startup instance với pfile

Trước tiên, mở tập tin pfile và tạo các thư mục audit_file_dest, control_files,.. nếu chưa tồn tại hoặc thay đổi đường dẫn cho phù hợp.

[oracle@oel5 ~]$ vi /u01/app/oracle/product/11.1.0/db_1/dbs/initORCL.ora 
ORCL.__db_cache_size=159383552
ORCL.__java_pool_size=12582912
ORCL.__large_pool_size=4194304
ORCL.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
ORCL.__pga_aggregate_target=117440512
ORCL.__sga_target=348127232
ORCL.__shared_io_pool_size=0
ORCL.__shared_pool_size=163577856
ORCL.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/ORCL/adump'
*.audit_trail='db'
*.compatible='11.1.0.0.0'
*.control_files='/u01/app/oracle/oradata/ORCL/control01.ctl','/u01/app/oracle/oradata/ORCL/control02.ctl',
'/u01/app/oracle/oradata/ORCL/control03.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='ORCL'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=4294967296
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORCLXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.open_cursors=300
*.pga_aggregate_target=115343360
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=348127232
*.undo_tablespace='UNDOTBS1'

Tiếp theo mớI startup instance

RMAN> startup force nomount pfile='/u01/app/oracle/product/11.1.0/db_1/dbs/initORCL.ora';

Oracle instance started

Total System Global Area     347340800 bytes

Fixed Size                     1299848 bytes
Variable Size                180357752 bytes
Database Buffers             159383552 bytes
Redo Buffers                   6299648 bytes

RMAN> 

2.3 Restore control files và mount database

RMAN> restore controlfile from '/home/oracle/ORCL_backup/o1_mf_ncsnf_TAG20120415T081939_7rn8vhyx_.bkp';

Starting restore at 15-APR-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=153 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:03
output file name=/u01/app/oracle/oradata/ORCL/control01.ctl
output file name=/u01/app/oracle/oradata/ORCL/control02.ctl
output file name=/u01/app/oracle/oradata/ORCL/control03.ctl
Finished restore at 15-APR-12

RMAN> alter database mount;

database mounted
released channel: ORA_DISK_1

RMAN> 

2.4 Xác định Data files và Redo log files

[oracle@oel5 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.1.0.6.0 - Production on Sun Apr 15 09:15:29 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> column name format a60
SQL> select file# as "file/grp#", name from v$datafile
  2  union
  3  select group#, member from v$logfile
  4  /

 file/grp# NAME
---------- ------------------------------------------------------------
         1 /u01/app/oracle/oradata/ORCL/redo01.log
         1 /u01/app/oracle/oradata/ORCL/system01.dbf
         2 /u01/app/oracle/oradata/ORCL/redo02.log
         2 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
         3 /u01/app/oracle/oradata/ORCL/redo03.log
         3 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
         4 /u01/app/oracle/oradata/ORCL/users01.dbf
         5 /u01/app/oracle/oradata/ORCL/example01.dbf

8 rows selected.

SQL> 

2.5. Catalog backuppiece

RMAN> catalog backuppiece '/home/oracle/ORCL_backup/o1_mf_nnndf_TAG20120415T081939_7rn8m0d6_.bkp';

Starting implicit crosscheck backup at 15-APR-12
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=153 device type=DISK
Crosschecked 1 objects
Finished implicit crosscheck backup at 15-APR-12

Starting implicit crosscheck copy at 15-APR-12
using channel ORA_DISK_1
Finished implicit crosscheck copy at 15-APR-12

searching for all files in the recovery area
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_06_24/o1_mf_1_4_708x39cm_.arc
File Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_06_24/o1_mf_1_2_708vtnfv_.arc
File Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_06_24/o1_mf_1_3_708w2dby_.arc
File Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_07_06/o1_mf_1_7_718ft7y2_.arc
File Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_06_25/o1_mf_1_6_70cc2x2v_.arc
File Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_06_25/o1_mf_1_5_70c9jww1_.arc
File Name: /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2011_07_08/o1_mf_1_8_71g7bvdl_.arc
File Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_04_15/o1_mf_ncsnf_TAG20120415T081939_7rn8vhyx_.bkp

cataloged backup piece
backup piece handle=/home/oracle/ORCL_backup/o1_mf_nnndf_TAG20120415T081939_7rn8m0d6_.bkp RECID=3 STAMP=780657473

RMAN> list backup;


List of Backup Sets
===================


BS Key  Type LV Size
------- ---- -- ----------
1       Full    1.04G
  List of Datafiles in backup set 1
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 697670     15-APR-12 /u01/app/oracle/oradata/ORCL/system01.dbf
  2       Full 697670     15-APR-12 /u01/app/oracle/oradata/ORCL/sysaux01.dbf
  3       Full 697670     15-APR-12 /u01/app/oracle/oradata/ORCL/undotbs01.dbf
  4       Full 697670     15-APR-12 /u01/app/oracle/oradata/ORCL/users01.dbf
  5       Full 697670     15-APR-12 /u01/app/oracle/oradata/ORCL/example01.dbf

  Backup Set Copy #1 of backup set 1
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:05:01     15-APR-12       NO         TAG20120415T081939

    List of Backup Pieces for backup set 1 Copy #1
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    1       1   AVAILABLE   /u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_04_15/o1_mf_nnndf_TAG20120415T081939_7rn8m0d6_.bkp

  Backup Set Copy #2 of backup set 1
  Device Type Elapsed Time Completion Time Compressed Tag
  ----------- ------------ --------------- ---------- ---
  DISK        00:05:01     15-APR-12       NO         TAG20120415T081939

    List of Backup Pieces for backup set 1 Copy #2
    BP Key  Pc# Status      Piece Name
    ------- --- ----------- ----------
    3       1   AVAILABLE   /home/oracle/ORCL_backup/o1_mf_nnndf_TAG20120415T081939_7rn8m0d6_.bkp

BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
2       Full    9.36M      DISK        00:00:00     15-APR-12      
        BP Key: 2   Status: AVAILABLE  Compressed: NO  Tag: TAG20120415T081939
        Piece Name: /u01/app/oracle/flash_recovery_area/ORCL/backupset/2012_04_15/o1_mf_ncsnf_TAG20120415T081939_7rn8vhyx_.bkp
  SPFILE Included: Modification time: 15-APR-12
  SPFILE db_unique_name: ORCL
  Control File Included: Ckp SCN: 697995       Ckp time: 15-APR-12

RMAN> 

2.6 Build script để recover database

RMAN> run {
    set newname for datafile 1 to '/u01/app/oracle/oradata/ORCL/system01.dbf';
    set newname for datafile 2 to '/u01/app/oracle/oradata/ORCL/sysaux01.dbf';
    set newname for datafile 3 to '/u01/app/oracle/oradata/ORCL/undotbs01.dbf';
    set newname for datafile 4 to '/u01/app/oracle/oradata/ORCL/users01.dbf';
    set newname for datafile 5 to '/u01/app/oracle/oradata/ORCL/example01.dbf';
    
    set until scn 697670;
    restore database;
    switch datafile all;
    recover database;
}

2.7 Open database resetlogs

RMAN> alter database open resetlogs;

database opened


Leave a comment

Cài đặt Oracle Enterprise Manager Cloud Control 12c trên Oracle Linux 5


Enterprise Manager Cloud Control là tên gọi mới của Enterprise Manager Grid Control. Bài viết này hướng dẫn cài Oracle Enterprise Manager Cloud Control 12c Release 1 trên Oracle Linux 5.7 (x86).

Phần mềm

Tải về các phần mềm sau:

  • Oracle Linux 5.7 (x86)
  • Oracle Database 11gR2 (11.2.0.3) (x86)
  • Enterprise Manager Cloud Control 12c Release 1 (12.1.0.1) (x86)

Lưu ý: Các phiên bản cơ sở dữ liệu cũ được hỗ trợ, nhưng đốI với Oracle 11g thì phiên bản trước 11.2.0.2 phải cần patch.

Cài đặt cơ sở dữ liệu

Tham khảo

CàI đặt Oracle Database 11gR2 trên Oracle Linux

Cài đặt Cloud Control 12c

Tạo thư mục cài đặt Middleware

$ mkdir -p /u01/app/oracle/Middleware

Giải nén tập tin cài đặt Cloud Control, chạy script runInstaller để bắt đầu cài đặt.

$ unzip em12_linux_disk1of2.zip
$ unzip em12_linux_disk2of2.zip

$ ./runInstaller

Nếu muốn nhận thông tin hỗ trợ, nhập thông tin chi tiết, hoặc bỏ chọn các cập nhật bảo mật và click “Next”.

image

Chọn “Yes” ở hộp thoại cảnh báo.

image

Nếu muốn kiểm tra các cập nhật, nhập thông tin được yêu cầu, hoặc chọn “Skip” và click nút “Next”.

image

Nếu hệ thống thiếu các package cần thiết, hãy cài đủ. Có thể bỏ qua một vàI cảnh báo không quan trọng. Trên hệ thống PROD bạn phảI đảm bảo tất cả đều OK.

image

Xác nhận bỏ qua một vàI cảnh báo

image

Chọn vị trí càI Middleware

image

Nhập mật khẩu quản trị Middleware và Cloud Control

image

Lưu ý: Oracle Enterprise Manager Cloud Control chỉ hỗ trợ các phiên bản CSDL như sau:

image

Nếu bạn đã có càI Enterprise Manager Database Control, phảI gỡ bỏ trước khi càI Cloud Control

image

image

image

Một số yêu cầu có thể xảy ra trong khi càI Cloud Control.

image

Chọn “Yes” để trình càI đặt tự fix điều kiện cần thiết.

Màn hình cảnh báo sau đây là rất quan trọng khi càI trên hệ thống PROD nhằm đảm bảo hiệu suất và tính ổn định. Nhưng trong trường hợp test, bạn có thể bỏ qua

image

View lạI thông tin và bắt đầu càI đặt

image

Lưu ý thông tin WebLogic và port

image

Quá trình càI đặt bắt đầu

image

Thực thi script sau vớI quyền root

image

Các thành phần cần thiết được càI đặt thành công

image

Quá trình càI đặt thành công và thông tin chi tiết

image

Đăng nhập “Enterprise Manager Cloud Control”:

URL: https://host_name:7801/em

Tài khoản đăng nhập: sysman/mật khẩu đã nhập ở các bước trên

image

Chấp nhận bản quyền

image

Màn hình chính:

image

Đăng nhập “Admin Server”:

URL:

TàI khoản đăng nhập: weblogic / mật khẩu đã nhập ở các bước trên

image

Màn hình chính:

image


Leave a comment

Oracle–Quản lý Database Instance


    Thực hành: Tạo và quản lý file tham số

Bài viết này giới thiệu cách tạo và dùng SPFILE và duy trì PFILE.

  • Áp dụng cho bất kỳ HĐH
  • Dùng công cụ SQL Plus
  • Tập trung vào cách dùng SPFILE và duy trì PFILE
  • Thư mục default cho Windows là ORACLE_HOME\database\
  • Thư mục default cho UNIX là ORACLE_HOME/dbs/
    1. Dùng SQL Plus, select các tham số non-default từ view v$parameter.
    SQL> l
    
      1  select name, value from v$parameter
    
      2* where isdefault ='FALSE'
    
    SQL> /
    
     
    
    NAME                      VALUE
    
    ------------------------- ---------------------------------------
    
    processes                 150
    
    timed_statistics          TRUE
    
    shared_pool_size          29360128
    
    sga_max_size              135032864
    
    large_pool_size           1048576
    
    java_pool_size            0
    
    control_files            c:\oracle11g\oradata\ORCL\CONTROL01.CTL
    
    db_block_size             4096
    
    db_cache_size             16777216
    
    compatible                11.2.0
    
    fast_start_mttr_target    300
    
    undo_management           AUTO
    
    undo_tablespace           UNDOTBS
    
    remote_login_passwordfile EXCLUSIVE
    
    db_domain
    
    distributed_transactions  0
    
    instance_name             ORCL
    
    background_dump_dest      c:\oracle11g\admin\OEMREP\bdump
    
    user_dump_dest            c:\oracle11g\admin\OEMREP\udump
    
    core_dump_dest            c:\oracle11g\admin\OEMREP\cdump
    
    sort_area_size            524288
    
    db_name                   ORCL
    
    open_cursors              300
    
     
    
    24 rows selected.

    2. Dùng SQL Plus, tạo SPFILE từ PFILE đã có trong thư mục default

    SQL> create spfile from pfile;
    
     
    
    File created.
    3. Dùng SQL Plus, select các tham số non-default từ view v$parameter
    SQL> l
    
      1  select name, isspecified, value
    
      2  from v$spparameter
    
      3* where isspecified = 'TRUE'
    
    SQL> /
    
     
    
    NAME                      ISSPEC VALUE
    
    ------------------------- ------ ----------------------------------------
    
    processes                 TRUE   150
    
    timed_statistics          TRUE   TRUE
    
    shared_pool_size          TRUE   16777216
    
    sga_max_size              TRUE   134217728
    
    large_pool_size           TRUE   1048576
    
    java_pool_size            TRUE   0
    
    control_files             TRUE   c:\oracle11g\oradata\ORCL\CONTROL01.CTL
    
    control_files             TRUE   c:\oracle11g\oradata\ORCL\CONTROL02.CTL
    
    control_files             TRUE   c:\oracle11g\oradata\ORCL\CONTROL03.CTL
    
    db_block_size             TRUE   4096
    
    db_cache_size             TRUE   16777216
    
    compatible                TRUE   11.2.0
    
    fast_start_mttr_target    TRUE   300
    
    undo_management           TRUE   AUTO
    
    undo_tablespace           TRUE   UNDOTBS
    
    remote_login_passwordfile TRUE   EXCLUSIVE
    
    db_domain                 TRUE
    
    distributed_transactions  TRUE   0
    
    instance_name             TRUE   ORCL
    
    dispatchers               TRUE   (PROTOCOL=TCP)(SER=MODOSE)
    
    dispatchers               TRUE   (PROTOCOL=TCP)(PRE=oracle.aurora.server.
    
                                     GiopServer)
    
     
    
    dispatchers               TRUE   (PROTOCOL=TCP)(PRE=oracle.aurora.server.
    
                                     SGiopServer)
    
     
    
    background_dump_dest      TRUE   c:\oracle11g\admin\ORCL\bdump
    
    user_dump_dest            TRUE   c:\oracle11g\admin\ORCL\udump
    
    core_dump_dest            TRUE   c:\oracle11g\admin\ORCL\cdump
    
    sort_area_size            TRUE   524288
    
    db_name                   TRUE   ORCL
    
    open_cursors              TRUE   300
    
    28 rows selected.
    4. Dùng SQL Plus, tạo PFILE từ SPFILE đã có
    SQL> create pfile from spfile;
    
     
    
    File created.
    Thực hành: Mô tả kiến trúc Oracle và các thành phần chính
    Trong bài viết này, bạn sẽ thấy kích thước các thành phần của SGA, và tự động thay đổI kích thước của shared pool và buffer cache.
  • Áp dụng cho bất kỳ HĐH
  • Phiên bản CSDL giả định là 11g
  • Tài khoản database với quyền dba, sysdba
  • Giả sử bạn có SPFILE động thay vì PFILE
    1. Dùng SQL Plus, show kích thước SGA (Shared Global Area):
    SQL> show sga
    
     
    
    Total System Global Area  135032864 bytes
    
    Fixed Size                   282656 bytes
    
    Variable Size             117440512 bytes
    
    Database Buffers           16777216 bytes
    
    Redo Buffers                 532480 bytes
    
    SQL>
    2. Dùng SQL Plus, show cấu trúc bộ nhớ của SGA (bytes)
    SQL> l
    
      1  select name, value from v$parameter where name in
    
      2  ('shared_pool_size',
    
      3   'java_pool_size',
    
      4   'large_pool_size',
    
      5   'db_cache_size',
    
      6   'log_buffer')
    
      7* order by 1
    
    SQL> /
    
     
    
    NAME                      VALUE
    
    ------------------------- -------------------------
    
    db_cache_size             16777216
    
    java_pool_size            0
    
    large_pool_size           1048576
    
    log_buffer                524288
    
    shared_pool_size          16777216
    
     
    
    SQL>
    3. Dùng SQL Plus, tự động alter kích thước của shared pool lên 32 Mb, show kích thước mớI và tự động alter kích thước trở về 16 Mb. Dùng lệnh ALTER SYSTEM cho cả 2 hành động.
    SQL> show parameter shared_pool_size
    
     
    
    NAME                                 TYPE        VALUE
    
    ------------------------------------ ----------- --------------
    
    shared_pool_size                     big integer 16777216
    
    SQL> alter system set shared_pool_size = 32m;
    
     
    
    System altered.
    
     
    
    SQL> show parameter shared_pool_size
    
     
    
    NAME                                 TYPE        VALUE
    
    ------------------------------------ ----------- --------------
    
    shared_pool_size                     big integer 33554432
    
    SQL> alter system set shared_pool_size = 16m;
    
     
    
    System altered.
    
     
    
    SQL> show parameter shared_pool_size
    
     
    
    NAME                                 TYPE        VALUE
    
    ------------------------------------ ----------- --------------
    
    shared_pool_size                     big integer 16777216
    
    SQL>
    4. Dùng SQL Plus, show kích thước của DB_BUFFER_CACHE và tự động thay đổi thành 32 Mb, sau đó thay đổi lại 16 Mb. Dùng lệnh ALTER SYSTEM cho cả 2 hành động.
    SQL> show parameter db_cache_size
    
     
    
    NAME                                 TYPE        VALUE
    
    ------------------------------------ ----------- --------
    
    db_cache_size                        big integer 16777216
    
    SQL> alter system set db_cache_size=32m;
    
     
    
    System altered.
    
     
    
    SQL> show parameter db_cache_size
    
     
    
    NAME                                 TYPE        VALUE
    
    ------------------------------------ ----------- --------
    
    db_cache_size                        big integer 33554432
    
    SQL> alter system set db_cache_size=16m;
    
     
    
    System altered.
    
     
    
    SQL> show parameter db_cache_size
    
     
    
    NAME                                 TYPE        VALUE
    
    ------------------------------------ ----------- --------
    
    db_cache_size                        big integer 16777216
    
    SQL>
    5. Dùng SQL Plus, select kích thước hiện tạI và kích thước trước đó của default buffer cache.
    SQL> l
    
      1  select name, current_size, buffers, prev_size, prev_buffers
    
      2* from v$buffer_pool
    
    SQL> /
    
     
    
    NAME                      CURRENT_SIZE    BUFFERS  PREV_SIZE PREV_BUFFERS
    
    ------------------------- ------------ ---------- ---------- ------------
    
    DEFAULT                             16       3932         32         7864
    Thực hành: Start up and Shut down Instance
    BàI viết chỉ cách start up và shut down Oracle database
  • Áp dụng cho bất kỳ HĐH
  • Dùng công cụ SQL Plus
  • Cần quyền SYSDBA để shut down database
    1. Sau khi connect vào database vớI quyền SYSDBA trong SQL Plus, start up database ở trạng tháI NOMOUNT
    SQL> connect / as sysdba
    
    Connected to an idle instance.
    
    SQL> startup nomount
    
    ORACLE instance started.
    
     
    
    Total System Global Area  135032864 bytes
    
    Fixed Size                   282656 bytes
    
    Variable Size             117440512 bytes
    
    Database Buffers           16777216 bytes
    
    Redo Buffers                 532480 bytes
    2. Dùng SQL Plus, alter database sang trạng tháI MOUNT
    SQL> alter database oemrep mount;
    
     
    
    Database altered.
    3. Dùng SQL Plus, select trạng tháI của Instance từ view v$instance
    SQL> select instance_name, status from v$instance
    
    SQL> /
    
     
    
    INSTANCE_NAME    STATUS
    
    ---------------- -------
    
    ORCL           MOUNTED
    4. Dùng SQL Plus, alter database sang trạng tháI OPEN. Sau đó select trạng tháI của database từ view v$instance
    SQL> alter database open;
    
     
    
    Database altered.
    
     
    
    SQL> select instance_name, status from v$instance;
    
     
    
    INSTANCE_NAME    STATUS
    
    ---------------- -------
    
    ORCl           OPEN
    Thực hành: Shut down Instance
  • Áp dụng cho bất kỳ HĐH
  • Dùng công cụ SQL Plus
  • Cần quyền SYSDBA để shut down database
    1. Dùng SQL Plus, select trạng tháI database từ view v$instance
    SQL> select instance_name, status from v$instance;
    
     
    
    INSTANCE_NAME    STATUS
    
    ---------------- -------
    
    ORCL           OPEN
    2. Dùng SQL Plus, connect đến database vớI quyền SYSDBA
    SQL> connect / as sysdba
    
    Connected.

3. Dùng SQL Plus, shut down database vớI checkpoint

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.


Leave a comment

Các lệnh Vi thường dùng cho DBA


Một số lệnh Vi rất hữu ích và thường dùng cho người mới bắt đầu và DBA.

esc :q! Just quit – don’t save
esc :e! Revert to saved
esc :wq Save and exit
esc shif zz Save and exit
esc i Enter insert mode (edit mode)
esc a Enter append mode (edit mode)
esc Exit edit mode
esc r Replace a single character
esc x Delete a single character
esc dd Delete a single line
esc yy Copy a single line
esc p Paste a single line
. Repeat last command
esc / String search
esc $ Jump to end of line
esc ^ Jump to beginning of line
shift g Jump to the end of the file
:1 Jump to the beginning of the file
:.= Display the current line number


4 Comments

Một số ví dụ về Oracle Job Scheduler


DBMS_SCHEDULER là 1 package của Oracle (có từ version 10) cung cấp các procedure giúp tạo job.

  Tạo Oracle Job gồm 3 bước:

  1. Tạo time schedule – dbms_scheduler.create_schedule
  2. Tạo program declaration – dbms_scheduler.create program
  3. Tạo job (conflation) – dbms_scheduler.create_job

Lưu ý: login vào với vai trò sys và gán quyền cho user cần tạo job:

SQL> conn / as sysdba

GRANT create any directory TO fhr;
GRANT create procedure TO fhr;
GRANT create table TO fhr;

GRANT create job TO fhr;
GRANT manage scheduler TO fhr;

1. Tạo time schedule

begin
-- daily from Monday to Sunday at 22:00 (10:00 p.m.)
dbms_scheduler.create_schedule
(schedule_name => 'INTERVAL_DAILY_2200',
 start_date=> trunc(sysdate)+18/24, -- start today 18:00 (06:00 p.m.)
 repeat_interval=> 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI,SAT,SUN; BYHOUR=22;',
 comments=>'Runtime: Every day (Mon-Sun) at 22:00 o clock');

-- run every hour, every day
dbms_scheduler.create_schedule(  
schedule_name  => 'INTERVAL_EVERY_HOUR',  
  start_date    => trunc(sysdate)+18/24,  
  repeat_interval => 'freq=HOURLY;interval=1',  
  comments     => 'Runtime: Every day every hour');  

-- run every 5 minute, every day
dbms_scheduler.create_schedule(
schedule_name  => 'INTERVAL_EVERY_5_MINUTES',
  start_date    => trunc(sysdate)+18/24,
  repeat_interval => 'freq=MINUTELY;interval=5',
  comments     => 'Runtime: Every day all 5 minutes');

-- run every minute, every day
dbms_scheduler.create_schedule(
schedule_name  => 'INTERVAL_EVERY_MINUTE',
  start_date    => trunc(sysdate)+18/24,
  repeat_interval => 'freq=MINUTELY;interval=1',
  comments     => 'Runtime: Every day every minute');

-- run every Sunday at 18:00 (06:00 p.m.)
dbms_scheduler.create_schedule
(schedule_name => 'INTERVAL_EVERY_SUN_1800',
 start_date=> trunc(sysdate)+18/24,
 repeat_interval=> 'FREQ=DAILY; BYDAY=SUN; BYHOUR=18;',
 comments=>'Runtime: Run at 6pm every Sunday');
end;

2. Tạo program declaration

begin
-- Call a procedure of a database package
dbms_scheduler.create_program
(program_name=> 'PROG_COLLECT_SESS_DATA',
 program_type=> 'STORED_PROCEDURE',
 program_action=> 'pkg_collect_data.prc_session_data',
 enabled=>true,
 comments=>'Procedure to collect session information'
 );
end;

3. Tạo Job

begin
-- Connect both dbms_scheduler parts by creating the final job
dbms_scheduler.create_job
 (job_name => 'JOB_COLLECT_SESS_DATA',
  program_name=> 'PROG_COLLECT_SESS_DATA',
  schedule_name=>'INTERVAL_EVERY_5_MINUTES',
  enabled=>true,
  auto_drop=>false,
  comments=>'Job to collect data about session values every 5 minutes');
end;

4. Thay đổi properties của phần Time scheduler

 

begin
-- change start time
DBMS_SCHEDULER.SET_ATTRIBUTE(
   name => 'INTERVAL_EVERY_5_MINUTES',
   attribute => 'start_date',
   value => to_date('22.06.2009 12:15','dd.mm.yyyy hh24:mi')
);

-- change repeat interval
DBMS_SCHEDULER.SET_ATTRIBUTE(
   name => 'INTERVAL_EVERY_MINUTE',
   attribute => 'repeat_interval',
   value => 'freq=MINUTELY;interval=2'
); 
end;

5. Run job

begin
dbms_scheduler.run_job('JOB_COLLECT_SESS_DATA',TRUE);
end;

6. Restart job

begin
dbms_scheduler.disable('JOB_COLLECT_INST_INFO');
dbms_scheduler.enable('JOB_COLLECT_INST_INFO');
end;

7. Job status

-- All jobs
select * from user_scheduler_jobs;

-- Get information to job
select * from user_scheduler_job_log order by log_date desc;

-- Show details on job run
select * from user_scheduler_job_run_details;

8. Alternative Job status

-- View all running jobs, Run the following query from SQL*Plus
SELECT a.sid, c.serial#, a.job, a.failures, to_char(a.this_date, 'mm/dd/yyyy hh:mi pm') startdatetime, b.what
FROM dba_jobs_running a, dba_jobs b, v$session c
WHERE a.job = b.job AND a.sid = c.sid order by a.this_date;

-- View all jobs, Run the following query from SQL*Plus
SELECT job, to_char(last_date, 'mm/dd/yyyy hh:mi pm') lastdate, to_char(next_date, 'mm/dd/yyyy hh:mi pm') nextdate, failures, broken, what 
FROM dba_jobs 
ORDER BY next_date;

9. Killing a running job

Ý hay là khi muốn kill 1 job mà không muốn nó tự restart lại là hãy đánh dấu broken. Chạy lệnh sau từ SQL*Plus:

-- Võìi job_id lâìy týÌ câu truy vâìn “View all running jobs”.
execute dbms_job.broken(job_id, true);

Sau đó, kill session bằng 1 trong 2 cách:

#1: (the best / fast way to kill a session)

-- Find the thread you want to kill
SELECT sid, spid as thread, osuser, s.program
FROM sys.v_$process p, sys.v_$session s
WHERE p.addr = s.paddr;

-- Run the following for Oracle on Linux, sid is the name given to the Oracle Instance 
-- (the name given in the TNSnames.ora fle)
orakill sid thread

#2:

-- Run the following query from SQL*Plus
-- sid and serial# came from the "View all running jobs" query. 
-- The problem with this option is it can sometimes take a long time to kill the session
alter system kill session 'sid, serial#'

Để remove hoàn toàn job, chạy lệnh:

-- job_id is obtained from the "View all running jobs" query.
execute dbms_job.remove(job_id)

Nếu chỉ muốn stop job để fix chứ không muốn remove hoàn toàn, hãy fix job và restart bằng lệnh:

-- job_id is obtained from the "View all running jobs" query
execute dbms_job.broken(job_id, false);

Ghi chú: Khi nào job trở thành ‘broken’?

  • Oracle thực hiện job thành công sau 16 lần cố gắng thực hiện (có lỗi khi thực hiện job). hoặc
  • Người dùng đánh dấu job là ‘broken’, dùng proc DBMS_JOB.BROKEN.
    Khi 1 job được đánh dấu là ‘broken’. Oracle sẽ không cố gắng thực hiện job nữa đến khi job được đánh dấu không còn ‘broken’ hoặc bị ép thực thi bằng lời gọi DBMS_JOB.RUN.

10. Tạo job mà không cần time scheduler và program declaration

begin
dbms_scheduler.create_job (
  job_name            => 'TEST_JOB',
  job_type            => 'PLSQL_BLOCK',
  job_action          => 'begin /* some process code */ commit; end;',
  number_of_arguments => 0,
  start_date          => sysdate +1/24/59, -- sysdate + 1 minute
  job_class           => 'DEFAULT_JOB_CLASS',  -- Normal Group
  enabled             => TRUE,
  auto_drop           => TRUE,
  comments            => 'Testrun');
end;


Leave a comment

Ý nghĩa của Oracle "I" và "G"


Ý nghĩa của “I” và “G” trong Oracle và định dạng số phiên bản trong mỗI release của sản phẩm Oracle.

Ý nghĩa của “I” trong Oracle:

Phiên bản Oracle bắt đầu bằng ký tự I. Bắt đầu từ 1999 vớI phiên bản 6i, 8i và 9i. I là biểu thị cho “Internet”, nghĩa là viết tắt cho “Internet” và Oracle thêm “I” vào tên phiên bản để phản ánh sự hỗ trợ Internet vớI Java Virtual Machine (JVM) được tích hợp sẵn. Oracle 9i thêm hỗ trợ XML vào năm 2001.

Ý nghĩa của “G” trong Oracle:

Bắt đầu năm 2003 vớI phiên bản 10g và 11g, G biểu thị cho “Grid Computing” với lần phát hành Oracle 10g vào năm 2003. Oracle 10g được giới thiệu với G nhấn mạnh đến tính toán lưới (grid computing), cho phép kết chùm máy chủ (cluster) với chi phí thấp, các máy chủ chuẩn công nghiệp được liên kết với nhau thành đơn vị duy nhất. Nâng cấp Enterprise Manager 10g Grid Control Release 4 (10.2.0.4.0) hoặc cao hơn lên Enterprise Manager 11g Grid Control Release 1 (11.1.0.1.0).

Ví dụ về định dạng số phiên bản trong mỗI release (10.2.0.1.0) của sản phẩm Oracle:

Hai ký tự số đầu tiên (10): Meager database / Version release number

Ký tự số thứ hai (2): Maintenance release number

Ký tự số thứ ba (0): Application release number

Ký tự số thứ tư (1): Component-Specific / Patch release number

Ký tự số thứ năm (0): Platform release number

Platform release number có thể được dùng xác định bản phát hành patch cụ thể của sản phẩm Oracle trên hệ điều hành.

image

SQL> SELECT * FROM PRODUCT_COMPONENT_VERSION;
PRODUCT                                  VERSION         STATUS
---------------------------------------- --------------- ---------------
NLSRTL                                   10.2.0.1.0      Production
Oracle Database 10g Enterprise Edition   10.2.0.1.0      64bi
PL/SQL                                   10.2.0.1.0      Production
TNS for 64-bit Windows:                  10.2.0.1.0      Production


Leave a comment

Cấu hình Oracle Application Express 3.0 trên Oracle Database 11g


Mục đích

Bài viết này mô tả cách cấu hình Oracle Application Express 3.0 trên Oracle Database 11g.

Thời gian hoàn tất

Khoảng 30 phút

Chủ đề

TàI liệu này cover các chủ đề sau:

* Tổng quan

* Yêu cầu

* Cấu hình Embedded PL/SQL Gateway

* Tạo workspace và tàI khoản workspace

* Tạo tàI khoản developer

* Đăng nhập

* Tổng kết

Tổng quan

Cài Oracle Application Express trên Oracle Database 11g trở nên dễ dàng hơn bao giờ. Trên Oracle Database 11g, Oracle Application Express đã được cài đặt khi database được cài đặt. Tất cả những gì bạn cần là cấu hình PL/SQL gateway. Trong phiên bản trước của Oracle Database, bạn cần phải cài Apache, nay không cần thiết và có thể dùng như tùy chọn trong Oracle Database 11g.

Yêu cầu

Trước khi thực hiện theo bài viết này, bạn nên:

1. Cài đặt Oracle Database 11g.

Cấu hình Embedded PL/SQL Gateway

Trên Oracle Database 11g, bạn cấu hình embedded gateway bằng cách chạy tập tin cấu hình apxconf.sql. Chạy scirpt này cho phép bạn cấu hình port cho Oracle XML DB HTML server và chỉ định mật khẩu cho tài khoản Oracle Application Express ADMIN. Khi bạn unlock tài khoản ANONYMOUS. Thực hiện theo các bước sau:

1. Mở cửa sổ terminal và nhập các lệnh sau:

cd $ORACLE_HOME/apex

sqlplus sys/<sys_password> as sysdba

@apxconf

image

2. Nhập mật khẩu tàI khoản quản trị Oracle Application Express ADMIN, ví dụ nhập oracle và nhấn enter.

image

3. Nhập 8080 cho port của XML DB HTTP server và nhấn enter. Đây cũng là port mặc định.

image

4. Embedded PL/SQL gateway đã được cấu hình

image

5. Bước cuối cùng là unlock tài khoản anonymous. Từ cửa sổ terminal, gõ lệnh sau:

image

Tạo mới Workspace và tài khoản Workspace Administrator

Trước khi tạo 1 ứng dụng, bạn nên tạo 1 workspace và 1 tài khoản workspace administrator. Thực hiện theo các bước sau:

1. Mở trình duyệt và nhập URL sau:

:8080/apex/apex_admin">http://<hostname>:8080/apex/apex_admin

Nhập username là admin và mật khẩu là oracle (hoặc mật khẩu mà bạn đã chỉ định khi cấu hình APEX). Sau đó nhấn nút Login.

image

2. Lần đầu tiên đăng nhập, bạn cần thay đổI mật khẩu. Nhập mật khẩu hiện tại là oracle và nhập mật khẩu mớI, click Apply Changes.

image

3. Chọn Return.

image

4. Bạn cần đăng nhập lại dùng mật khẩu mới.

image

5. Trong Manage Workspace, chọn Create Workspace.

image

6. Nhập Workspace Name là obe và chọn Next.

image

7. Chọn No cho tùy chọn “Re-use Existing Schema?”. Nhập Schema Name là obe và mật khẩu, chọn 5 cho tùy chọn Space Quota. Sau đó chọn Next.

image

8. Nhập Administrator Username là obe, và nhập Administrator Password và địa chỉ Email. Sau đó chọn Next. Một người dùng administrator mới sẽ được tạo ra và được thêm vào workspace.

image

9. Xem lạI thông tin workspace và chọn Create.

image

10. Workspace và user đã được tạo. Chọn Done.

image

11. Hãy thử đăng nhập vào workspace dùng tàI khoản obe. Sau khi đăng nhập thành công chọn Logout.

image

Tạo tài khoản Developer

Bạn muốn tạo tàI khoản developer. TàI khoản này dùng Oracle Application Express để tạo các đốI tượng cơ sở dữ liệu và ứng dụng. Thực hiện theo các bước sau:

1. Chọn Login

image

2. Nhập thông tin chi tiết và chọn Login.

Workspace: obe

Username: obe

Password: <your password>

image

3. Trong vùng Administrator bên tay phảI của cửa sổ, chọn Manage Application Express Users.

image

4. Chọn Create.

image

5. Nhập dev1 cho trường User Name và oracle trong trường Password và Confirm Password. Nhập địa chỉ e-mail và chọn Create User.

image

6. Một tàI khoản developer đã được tạo ra. Bây giờ bạn có thể đăng nhập dùng tàI khoản dev1. Chọn Logout.

image

Đăng nhập

Đăng nhập vào OBE Workspace dùng tàI khoản developer. Thực hiện theo các bước sau:

1. Chọn Login.

image

2. Nhập thông tin chi tiết, và chọn Login.

Workspace: obe

Username: dev1

Password: <your password>

image

2. Lần đầu tiên đăng nhập, bạn cần phảI thay đổI mật khẩu. Nhập mật khẩu hiện tạI, mật khẩu mớI và chọn Apply Changes.

image

3. Chọn Return.

image

4. Bạn thử đăng nhập lần nữa dùng mật khẩu mới. Sau khi đăng nhập thành công chọn Logout.

image

5. Trang Workspace Home xuất hiện

image

Tổng kết

Trong bàI viết này, bạn đã học được cách:

* CàI đặt và cấu hình Oracle Application Express.

* Tạo mớI Workspace và tàI khoản workspace.

* Tạo tàI khoản developer.

* Đăng nhập Oracle Application Express.


Leave a comment

Host Credentials ERROR Invalid username and or password Oracle 11g


Khi thực hiện các thao tác quản trị dùng Enterprise Manager (EM) – ví dụ như backup, restore, bạn thường phải nhập tài khoản chứng thực của domain hoặc máy hiện chứa Oracle Instance cần thực hiện hành động quản trị.

Oracle Host Credentials Error – Connection to host as user Administrator failed.ERROR: Invalid username and/or password

Trên Windows XP, thực hiện như sau:

Vào Control Panel > Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment.

Tìm “Log on as batch job”, nhấp đôi chuột lên, chọn Add User or Group và thêm tên người dùng mà bạn muốn dùng với Oracle 11g.

Trên Windows 2003, thực hiện như sau:

Vào All Programs > Administrative Tools > Local Security Policy > Local Policies > User Rights Assignment.

Tìm “Log on as batch job”, nhấp đôi chuột lên, chọn Add User or Group và thêm tên người dùng mà bạn muốn dùng với Oracle 11g.

image


1 Comment

Cài đặt Oracle Database 11g Release 2 (11.2) (64-bit) trên Oracle Linux 6 (64-bit)


TàI liệu này mô tả cài đặt Oracle Database 11g Release 2 (11.2) (64-bit) trên Oracle Linux (64-bit). Máy chủ cài đặt có 3Gb RAM, 6Gb swap, SELinux và Firewall đều được disabled. Tài khoản cài đặt không phải tài khoản root (vì Oracle không cho phép cài đặt dưới tài khoản root). Khi cài đặt Oracle Linux 6, các gói thuộc các nhóm sau phải được cài đặt.

  • Base System
  • Base
  • Debugging Tools
  • Directory Client
  • Hardware monitoring Client
  • Large Systems Performance
  • Network file system client
  • Performance Tools
  • Perl Support
  • Servers
  • Server Platform
  • System administration tools
  • Desktops
  • Desktop
  • Desktop Platform
  • Fonts
  • General Purpose Desktop
  • Graphical Administration Tools
  • X Windows System
  • Applications
  • Internet Browser
  • Development
  • Development Tools

Hướng dẫn cài đặt Oracle Linux có thể xem tại đây.

Tải phần mềm

Tải Oracle software từ OTN hoặc MOS

Giải nén các tập tin

Terminal, dùng tài khoản root

# 11.2.0.1
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip

#11.2.0.2
unzip p10098816_112020_Linux-x86-64_1of7.zip
unzip p10098816_112020_Linux-x86-64_2of7.zip

Sau khi giải nén (dùng lệnh chương trình unzip sẵn có) sẽ được 1 thư mục database duy nhất). Nếu bạn click chuột phải lên thư mục và giảI nén trong GNOM hoặc KDE sẽ tạo ra 2 thư mục database và database(1).

Tập tin Hosts

Tập tin “/etc/hosts” tên đầy đủ của máy chủ.

<IP-address>  <fully-qualified-machine-name>  <machine-name>

Ví dụ:

127.0.0.1            localhost.localdomain     localhost
192.168.2.181    ol6-11gr2.localdomain    ol6-11gr2

Kernel Parameters

Oracle khuyên nên thiết lập các tham số kernel tối thiểu như sau:

fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586

Các giá trị kernel hiện tại trong hệ thống có thể được kiểm tra dùng lệnh sau:

/sbin/sysctl -a | grep <param-name>

Terminal, tài khoản root: Thêm hoặc sửa các dòng sau trong tập tin “/etc/sysctl.conf”.

fs.suid_dumpable = 1
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=1048586

Chạy lệnh sau để thay đổi kernel parameters có hiệu lực

/sbin/sysctl -p

Thêm các dòng sau vào tập tin “/etc/security/limits.conf”.

oracle              soft    nproc   2047
oracle              hard    nproc   16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack   10240

Trong đó, oracle là tên tài khoản hiện sẽ dùng để cài Oracle Database.

Khi tất cả các bước trên hoàn tất, khởi động lại máy chủ.

Thiết lập

Đưa đĩa DVD chứa source cài đặt Oracle Linux 6 vào hệ thống, dùng tài khoản root, cài đặt các gói sau nếu chúng chưa được cài đặt.

# From Oracle Linux 6 DVD
cd /media/cdrom/Server/Packages
rpm -Uvh binutils-2*x86_64*
rpm -Uvh glibc-2*x86_64* nss-softokn-freebl-3*x86_64*
rpm -Uvh glibc-2*i686* nss-softokn-freebl-3*i686*
rpm -Uvh compat-libstdc++-33*x86_64*
rpm -Uvh glibc-common-2*x86_64*
rpm -Uvh glibc-devel-2*x86_64*
rpm -Uvh glibc-devel-2*i686*
rpm -Uvh glibc-headers-2*x86_64*
rpm -Uvh elfutils-libelf-0*x86_64*
rpm -Uvh elfutils-libelf-devel-0*x86_64*
rpm -Uvh gcc-4*x86_64*
rpm -Uvh gcc-c++-4*x86_64*
rpm -Uvh ksh-*x86_64*
rpm -Uvh libaio-0*x86_64*
rpm -Uvh libaio-devel-0*x86_64*
rpm -Uvh libaio-0*i686*
rpm -Uvh libaio-devel-0*i686*
rpm -Uvh libgcc-4*x86_64*
rpm -Uvh libgcc-4*i686*
rpm -Uvh libstdc++-4*x86_64*
rpm -Uvh libstdc++-4*i686*
rpm -Uvh libstdc++-devel-4*x86_64*
rpm -Uvh make-3.81*x86_64*
rpm -Uvh numactl-devel-2*x86_64*
rpm -Uvh sysstat-9*x86_64*
rpm -Uvh compat-libstdc++-33*i686*
cd /
eject

Lưu ý: từ cdrom tô đậm ở trên là tên của đĩa DVD chứa source cài đặt Oracle Linux 6 (khoản 3,6Gb). Tất cả các thiết bị ngoại vi như CD/DVD ROM, USB khi được hệ thống nhận diện đều nằm trong thư mục /media. Do vậy có thể dùng lệnh ls /media để xác định tên của đĩa CD/DVD; nếu tên của đĩa CD/DVD (tên được đặt khi ghi đĩa) có khoản trắng, phải đặt trong cặp dấu ngoặc khép “” (ví dụ: “Oracle Linux 6 X64”).

Một lưu ý nữa là các gói cài đặt ở trên gồm cả các gói 32-bit cho phiên bản 11.2.0. Từ phiên bản 11.2.0.2 thì nhiều gói trở nên không cần thiết, tuy nhiên có sự xuất hiện của chúng cũng không sao.

Tạo các nhóm và người dùng

groupadd oinstall
groupadd dba
groupadd oper
groupadd asmadmin
groupadd asmdba
groupadd asmoper

useradd –u dba -g oinstall -G dba,asmdba,oper oracle
passwd oracle

Lưu ý: Chúng ta không dùng nhóm “asm”, vì quá trình cài đặt không dùng ASM (không dùng hệ thống đĩa SAN hoặc iSCSI)

Tạo thư mục và cấp quyền mà Oracle software sẽ được cài đặt

mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

Dùng tài khoản sẽ cài đặt Oracle để thêm các dòng sau đây vào cuốI tập tin “.bash_profile” (lưu ý: đây là tập tin ẩn).

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=ol6-11gr2.localdomain; export ORACLE_HOSTNAME
ORACLE_UNQNAME=DB11G; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_SID=DB11G; export ORACLE_SID

PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

Cài đặt

Khởi động Oracle Universal Installer (OUI) bằng cách chạy lệnh sau tại thư mục database

./runInstaller

Lưu ý: Mặc dù đã cài các góI như Oracle khuyên, nhưng khi cài đặt vẫn gặp 1 số các warning nhắc nhở khoảng < 10 gói chưa cài đặt trên hệ thống, nhưng khi kiểm tra thì thấy đã cài rùi. Cứ an tâm chọn Ignore All

Còn lại quá trình các bước màn hình cài đặt không khác trên Windows.

1. Configure Security Updates

Nếu đang sở hửu tàI khoản Oracle Metalink (tài khoản được Oracle support – tính phí), hãy cấu hình bước này để nhận được các bản vá và thông tin hữu ích từ Oracle. Ngược lại, bỏ qua.

2. Select Install Option

Nên tạo CSDL mẫu khi cài đặt vì tất cả các tài liệu của Oracle đều lấy ví dụ dựa trên cơ sở dữ liệu mẫu này.

3. System Class

Thật sự chọn Server Class sẽ cho phép tùy chọn cao hơn là Desktop Class.

4. Node Selection

Oracle hỗ trợ fail-over và load balancing (High Availability), cho phép cấu hình 1 cluster (active-active) dùng chung hệ thống SAN (iSCSI) rất hữu ích. Nhưng chúng ta đang cài 1 hệ thống đơn.

5. Select Install Type

Advanced Install chẳng qua là hiện tất cả các giá trị mặc định của Typical Install để mình có thể thay đổi được dễ dàng ngay khi cài đặt.

6. Typical Install Configuration

Oracle base là thư mục cơ sở: chứa các Oracle software (database + các software khác của Oracle)

Oracle home: là thư mục chứa instance của Oracle + data file.

Administrative password: chính là mật khẩu của các tài khoản SYS, SYSTEM

7. Create Inventory

8. Perform Prerequisite Checks

9. Summary

10. Install Product

Cài Oracle Instance

11. Database Configuration Assistant

Bước này chính là cài cơ sở dữ liệu mẫu dùng chương trình Database Configuration Assistant (DBCA)

12. Database Configuration Assistant 2

Có nhiều tài khoản CSDL được tạo ra mặc định, có thể kích hoạt và đặt mật khẩu các tài khoản khác tại bước này. Sau khi cài xong, đăng nhập vớI tài khoản SYS hoặc SYSTEM, mình vẫn làm được việc này.

13. Execute Configuration Scripts

Terminal, đăng nhập tài khoản root, chạy 2 scripts như đường dẫn. Script thứ 2 chỉ cần enter khi được hỏi.

14. Finish

Hoàn tất càI đặt, có thể truy xuất cơ sở dữ liệu thông qua Enterprise Manager tại địa chỉ

https://localhost:1158/em

Hoặc có thể dùng SQL Developer (ORACLE_HOME/sqldeveloper/) hoặc SQL*Plus để quản lý CSDL

Có điều này: sau khi bạn khởi động lại máy chủ, Oracle services sẽ không tự khởi động => phải start thủ công cả Oracle instance và Enterprise Manager hoặc viết script đặt trong thư mục “/etc/init.d” để tự động start Oracle khi hệ điều hành khởi động.

Sau khi cài đặt

Terminal, tài khoản root, sửa tập tin “/etc/oratab”

DB11G:/u01/app/oracle/product/11.2.0/db_1:Y