Chủ Nhật, 29 tháng 11, 2020

Quản lý dung lượng Temp trong Oracle Database

Mục đích: Quản lý dung lượng temp trong Oracle Database 10g, 11g, 12c, 19c

Quản lý Control Files trong Oracle Database từ A-Z

1. KIỂM TRA

Script Resize datafile trong Oracle Database

declare
   cursor c1 is select tablespace_name,file_id,max(block_id) mbid from dba_extents 
--   where tablespace_name in ('DATA_GPRS')
   group by tablespace_name,file_id;

Quản lý datafile trong Oracle Database

1.CHECK

-- Kiểm tra trạng thái:

--187 11167039014814 1/20/2014 10:57:50 AM 595 187 RECOVER READ WRITE 13503656762637 5/5/2022 2:53:37 PM 13391571876700 12/16/2021 9:07:13 PM 13408963390301 13408988992234 1/4/2022 3:15:15 PM 19373490176 2364928 10737418240 8192 0 8192 NONE 0 --> Mặc dù read write nhưng là RECOVER nên phải recover datafile này

select * from v$datafile where file#=187;

-- 187 DATA AVAILABLE 187 RECOVER -> Mặc dù AVAILABLE nhưng là RECOVER nên phải recover datafile này

select * from dba_data_files where file_id=187;

select * from v$datafile where status='RECOVER';

-- Dung luợng DB tính mỗi datafile (ngoài ra còn redo log, archived log, backup, flashback log,...)
select round(sum(bytes)/1024/1024/1024,2) "GB" from dba_data_files;

Quản lý Archied Redo Log Files trong Oracle Database

Note: Khi enable chế độ archive log thì redo log sẽ không bị ghi đè khi đầy, khi đó sẽ đẩy vào archive redo logs (hay còn gọi archived logs)

[VIP5] Quản lý Online Redo Log Files trong Oracle Database từ A-Z [Demo]

--1. Check
set echo off
set feedback off
set linesize 120
set pagesize 35
set trim on
set trims on
set lines 120
col group# format 999
col thread# format 999
col member format a70 wrap
col status format a10
col archived format a10
col fsize format 999 heading "Size (MB)"

select l.group#, l.thread#,
f.member,
l.archived,
l.status,
(bytes/1024/1024) fsize
from
v$log l, v$logfile f
where f.group# = l.group#
order by 1,2

SELECT * FROM V$LOG
--where status  in ('INACTIVE','ACTIVE','CURRENT')
order by group#;

SELECT thread#, count(*) FROM V$LOG group by thread#;

SELECT * FROM V$LOGFILE order by group#;

SQL> COL DAY FORMAT a15;
SQL> COL HOUR FORMAT a4;
SQL> COL TOTAL FORMAT 999;

SELECT TO_CHAR(FIRST_TIME,'YYYY-MM-DD') DAY,
    TO_CHAR(FIRST_TIME,'HH24') HOUR,
    COUNT(*) TOTAL
    FROM V$LOG_HISTORY
    WHERE first_time >= sysdate - 1
    GROUP BY TO_CHAR(FIRST_TIME,'YYYY-MM-DD'),TO_CHAR(FIRST_TIME,'HH24')
    ORDER BY TO_CHAR(FIRST_TIME,'YYYY-MM-DD'),TO_CHAR(FIRST_TIME,'HH24')
    desc;

Các câu lệnh hay sử dụng để quản trị TABLESPACE trong Oracle Database

--1. CHECK
--Hiển thị dung lượng trống của tablespace
SELECT  a.tablespace_name,100 - ROUND ( (NVL (b.bytes_free, 0) / a.bytes_alloc) * 100) "%Usage",
    ROUND (a.bytes_alloc / 1024 / 1024) "Size MB",
    ROUND (a.bytes_alloc / 1024 / 1024)- ROUND (NVL (b.bytes_free, 0) / 1024 / 1024) "Used MB",
    ROUND (NVL (b.bytes_free, 0) / 1024 / 1024) "Free MB",
    --ROUND ( (NVL (b.bytes_free, 0) / a.bytes_alloc) * 100) "%Free", 
    ROUND (maxbytes / 1048576)  "Max MB", 
    round(maxbytes/1048576-(ROUND (a.bytes_alloc / 1024 / 1024)- ROUND (NVL (b.bytes_free, 0) / 1024 / 1024)),0) "Free_MB_Max",
    ROUND (ROUND ( (a.bytes_alloc - NVL (b.bytes_free, 0)) / 1024 / 1024)/  ROUND (maxbytes / 1048576) * 100) "%Used of Max"
    FROM (SELECT f.tablespace_name, SUM (f.bytes) bytes_alloc,  SUM (DECODE (f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) maxbytes
            FROM dba_data_files f
            GROUP BY tablespace_name) a,
        (SELECT f.tablespace_name, SUM (f.bytes) bytes_free  FROM dba_free_space f  GROUP BY tablespace_name) b
 WHERE a.tablespace_name = b.tablespace_name(+)  and  (a.tablespace_name in ('TEMP1','DATA201511','DATA2016','INDX','INDX2016'))
 order by "%Used of Max" desc;

[VIP5]Các lệnh hay sử dụng khi chuyển dữ liệu sử dụng DataPump (expdp, impdp) từ A-Z trong Oracle Database

Mục đích: Các lệnh hay sử dụng khi chuyển dữ liệu sử dụng DataPump (expdp, impdp) trong Oracle Database

Các câu lệnh hay sử dụng trong IBM DB2


1. Help
su - db2inst2
db2
db2 ==> ? (mọi lệnh của db2)
Db2 ==> ? Get (chi tiết lệnh get)

Thứ Bảy, 28 tháng 11, 2020

FIX LỖI GỬI EMAIL ORA-24247: network access denied by access control list (ACL) trong Oracle Database


-- Gui mail bi loi
begin
    binhtv_owner.send_email_html_m('tranbinh48ca@gmail.com, binhoracle@gmail.com','Test send to 02 emails', 'Body');
end;


ORA-24247: network access denied by access control list (ACL)
ORA-06512: at "SYS.UTL_TCP", line 17
ORA-06512: at "SYS.UTL_TCP", line 267
ORA-06512: at "SYS.UTL_SMTP", line 161
ORA-06512: at "SYS.UTL_SMTP", line 197
ORA-06512: at "binhtv_owner.send_email_html_m", line 5
ORA-06512: at line 2

Thứ Sáu, 27 tháng 11, 2020

ORA-12528 TNS listener all appropriate instances are blocking new connections in Oracle Database

Error:

C:\Windows\system32>sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 – Production on Wed Oct 1 19:40:51 2008
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
 
SQL> connect sys@dbname as sysdba
Enter password:
ERROR: ORA-12528:
TNS:listener: all appropriate instances are blocking new connection

Thứ Ba, 24 tháng 11, 2020

Các lệnh hay dùng PFile và SPFile trong Oracle Database

Các câu lện hay sử dụng với PFILE và SPFILE:

PFILE
Nằm tại: $ORACLE_HOME/dbs/pfile
SQL> CONNECT sys/password AS SYSDBA
SQL> STARTUP PFILE=Init.ora
SQL> STARTUP PFILE=InitSID1.ora

Chủ Nhật, 22 tháng 11, 2020

Top 10 Hệ Quản Trị Cơ Sở Dữ Liệu Phổ Biến Nhất

Hệ quản trị cơ sở dữ liệu là một trong những kiến thức có ứng dụng quan trọng và được sử dụng phổ biến trong hầu hết mọi lĩnh vực công nghệ, tuy nhiên khá nhiều newbie mới học hoặc chưa có nhiều kinh nghiệm thường nhầm lẫn nhất về các khái niệm, cũng như “lấn cấn” trong các thao tác kiểm soát, tạo, cập nhật hay duy trì các cơ sở dữ liệu (database) trên các hệ quản trị CSDL (DBMS).

Thứ Sáu, 20 tháng 11, 2020

Hướng dẫn tối ưu hóa cấu trúc object, tablespace CSDL Oracle

  1. Cấu trúc bảng:

Khi tạo bảng mới cần áp dụng các phương án như sau:

  • Với bảng có dữ liệu lớn (2G trở lên) phải đánh partition.

- Với dữ liệu lịch sử thì đánh theo By Range.

- Với dữ liệu xác định trước được giá trị thì đánh theo By list.

- Với dữ liệu không có quy luật thì đánh theo By Hash.

[VIP5] QUY TRÌNH (CHECKLIST) KIỂM TRA TRƯỚC KHI TIẾP NHẬN, THỰC HIỆN SAU KHI TIẾP NHẬN VÀ THIẾT LẬP LẠI CÁC THAM SỐ CHUẨN CỦA ORACLE DATABASE_Full

1. Hướng dẫn kiểm tra tiếp nhận DB
  • Một số nội dung công việc cần thực hiện và kiểm tra lại trước khi tiếp nhận hoặc đưa DB mới vào môi trường hoạt động:

QUY TRÌNH (CHECKLIST) KIỂM TRA TIẾP NHẬN ORACLE DATABASE

Tag: Checklist cài đặt, cấu hình Oracle Database

 Mục đích

  • Nâng cao tính chuyên nghiệp trong quản trị CSDL

  • Đảm bảo tính thông nhất trong toàn bộ hệ thống CSDL

  • Đảm bảo an toàn, giám sát CSDL khi đưa vào khai thác

QUY ĐỊNH (CHECKLIST) CÁC THAM SỐ CẤU HÌNH TỐI ƯU ORACLE DATABASE

 Mục đích

  • Nâng cao tính chuyên nghiệp trong cài đặt, cấu hình CSDL

  • Đảm bảo tính thông nhất trong toàn bộ hệ thống CSDL

  • Đảm bảo an toàn, giám sát CSDL khi đưa vào khai thác

Chủ Nhật, 15 tháng 11, 2020

Bật, tắt DB trong Oracle Database

1. Check

SELECT database_status FROM v$instance;

2. Startup

STARTUP [FORCE] [RESTRICT] [PFILE=filename]
[EXCLUSIVE | PARALLEL | SHARED]
[OPEN [RECOVER][database]|MOUNT |NOMOUNT]

ALTER database { MOUNT | OPEN |OPEN READ ONLY | OPEN READ WRITTE}

Thứ Sáu, 13 tháng 11, 2020

XÁC ĐỊNH THÔNG TIN CÂU LỆNH SQL CHẠY TRONG QUÁ KHỨ trong Oracle Database

Cần check câu lệnh có SQL Text "SELECT   binhtv.tab_seq.NEXTVAL...." hoặc có SQL_ID chạy lúc nào, plan thế nào thì thực hiện theo các bước sau:

1. Xác định sql_Id

select sql_id from DBA_HIST_SQLTEXT where sql_text like '%SELECT   binhtv.tab_seq.NEXTVAL%';

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master