Thứ Ba, 18 tháng 9, 2018

Lựa chọn cơ sở dữ liệu đúng mục đích sử dụng

Hình ảnh có liên quan
Mọi cơ sở dữ liệu (CSDL – database) đều được tạo ra theo cách không giống nhau, mỗi loại đều có ưu và nhược điểm riêng. Thực tế cho thấy những loại database như MySQL, MongoDB đôi khi bị “lạm dụng” vì tính phổ biến của nó, bất chấp tính tương thích với dự án / nhu cầu hiện tại. Việc chỉnh sửa một database không phù hợp để cải thiện tính tương thích sẽ tiêu tốn nhiều thời gian, công sức và dẫn đến các lỗ hổng về bảo mật và khả năng mở rộng của toàn hệ thống. Vậy, việc chọn lựa một database phù hợp nhất cho dự án của bạn ngay từ đầu sẽ là sự lựa chọn tối ưu. Trước khi cân nhắc chọn database, mời các bạn đọc bài viết bên dưới, với nội dung gồm liệt kê các dạng database thường thấy, điểm mạnh / kém của chúng và nhất là chúng thích hợp để sử dụng cho mục đích nào.

Thứ Hai, 17 tháng 9, 2018

Thay đổi địa chỉ IP trên Solaris 10 không phải reboot

Có thể thay đổi địa chỉ IP của máy chủ Solaris 10 bằng cách sửa đổi vài tệp tin. Đây là cách thực hiện:
Địa chỉ IP của hệ thống được đặt dưới /etc/hosts. Tệp này thực sự được liên kết một cách tượng trưng với /etc/inet /hosts trong Solaris 10. Trong hệ thống của tôi, tôi có các mục sau trong /etc/hosts
# cat /etc/hosts
::1     localhost
127.0.0.1       localhost
192.168.1.122   opensolaris     loghost

Thứ Năm, 13 tháng 9, 2018

Xử lý cảnh báo enq: SQ - contention

1. Mục đích: 

Xử lý cảnh báo enq: SQ - contention làm wait nhiều khi ứng dụng lớn cần truy cập vào sequence. Hiện tượng khi đọc AWR --> Top 5 Timed Foreground Events có event:


EventWaitsTime(s)Avg wait (ms)% DB timeWait Class
enq: SQ - contention1,299179,88113847767.56Configuration
db file sequential read2,180,71728,7841310.81User I/O
DB CPU20,4967.70
SQL*Net message from dblink13,679,74513,51515.08Network
gc buffer busy release157,2573,078201.16Cluster

Thứ Ba, 11 tháng 9, 2018

Mount DBFS on Exadata

[oracle@testdb03 ~]$ ./mount-dbfs.sh 
Usage: mount-dbfs.sh { start | stop | check | status | restart | clean | abort }

[oracle@testdb03 ~]$ ./mount-dbfs.sh check
Check -- OFFLINE

[oracle@testdb03 ~]$ ./mount-dbfs.sh start
mount-dbfs.sh mounting DBFS at /dbfs_direct from database dbfs
ORACLE_SID is dbfs3
spawning dbfs_client command using SID dbfs3
Start -- ONLINE

Các câu lệnh backup với Oracle RMAN

Lệnh sao lưu RMAN

Sao lưu RMAN được thực hiện bằng cách sử dụng câu lệnh BACKUP
Để thực hiện sao lưu cơ sở dữ liệu đầy đủ sử dụng:

RMAN> BACKUP DATABASE;
Để sao lưu tất cả các bản ghi lưu trữ (archived redo log) sử dụng:
RMAN> BACKUP ARCHIVELOG ALL;
Để sao lưu cơ sở dữ liệu và tất cả các tệp nhật ký lưu trữ (archived redo log) sử dụng:
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

Thứ Năm, 6 tháng 9, 2018

ASM_Chuyển dữ liệu từ tablespace INDX sang INDX_RECO bằng cách rebuild index

-- Mục đích: Chuyển dữ liệu từ tablespace INDX sang INDX_RECO do nhu cầu chuyển sang phân vùng SATA tốc độ thấp bằng cách rebuild lại index
-- 1. Size tablespace_name like '%INDX%'
select * from dba_data_files where tablespace_name like '%INDX%';

select round(sum(bytes)/1024/1024/1024,2) "GB" from dba_data_files  where tablespace_name like '%INDX%';

-- 2.Tao tablespace INDX_RECO
create tablespace INDX_RECO datafile '/u01/app/oracle/oradata/orcl/indx_reco_001.dbf' size 100M autoextend on next 100m;

File System_Chuyển dữ liệu sang tablespace DATA, INDX bằng cách move partition (Oracle Database)

-- Mục đích: Quy hoạch lại các dữ liệu ví dụ như dữ liệu từ tablespace DATA2018, INDX2018, USERS sang tablespace DATA, INDX và chuyển dữ liệu non-partition từ tablespace USERS sang DATA, INDX
-- Có thể áp dụng từ tablespace này sang tablespace khác

--1.Check thông tin
select  round(sum(bytes)/1024/1024/1024,2) "GB" from dba_segments where tablespace_name='DATA2018'
order by "GB" desc;

Kiểm tra thông tin của tablespace Oracle

--Hiển thị size, free, max free 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','DATA201512','DATA2016','INDX'))
 order by "%Used of Max" desc;

File System_Quy trình chuyển datafile của tablespace DATA, INDX sang phân vùng mới bằng cách copy datafile

Muc đích
- Chuyển đổi tablespace từ phân vùng /u01 sang phân vùng u02 hoặc sang phân vùng tốc độc thâp như  SATA bằng cách copy datafile
- Ứng cứu phân vùng /u01 đầy 99, 100% cần chuyển 1 số datafile để tránh đầy sang phân vùng /u02

0.Kiểm tra dung lượng tablespace: 100MB
select round(sum(bytes)/1024/1024, 2) from dba_data_files where tablespace_name like 'DATA2018%' order by file_name desc;

select * from dba_data_files where tablespace_name like 'DATA2018%' order by file_name desc;

1.Read only, Offline tablespace
-- Chuyen tablespace ve che do read only
--alter tablespace DATA2018 read only;
Select 'alter tablespace ' || tablespace_name || ' read only;' from dba_tablespaces where tablespace_name like 'DATA2018';

Quản lý sequence trong Oracle Database


SELECT
select * from DBA_SEQUENCES where sequence_name like 'ORD_SEQ%'

Thứ Tư, 5 tháng 9, 2018

Hướng dẫn tạo ZFS pools và file systems trên Solaris

Chúng tôi có thể tạo nhóm ZFS bằng các thiết bị khác nhau như:

a. Sử dụng toàn bộ đĩa
b. Sử dụng slices đĩa
c. Sử dụng tập tin

ĐỌC NHIỀU

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