Category: Oracle

Grid Infrastructure 18c ตอน 5 (ตอนจบภาคติดตั้ง)

ตอนนี้จะมาติดตั้ง oracle database 18c เข้าระบบด้วยผู้ใช้ oracle เปิด terminal พิมพ์คำสั่ง (จากครั้งที่แล้วยังเหลือ disk อีก 2 ลูก) ต่อด้วยคำสั่ง SQL ต่อไปนี้ ได้ดังรูป เริ่มติดตั้ง database ได้ดังรูป Set Up Software Only กด Next ได้ดังรูป เลือก Oracle Real Application Clusters database installation ได้ดังรูป กด Next ได้ดังรูป เลือก…

Grid Infrastructure 18c ตอน 4

โหมดแทบ จะ next technology เข้าระบบด้วยผู้ใช้ oracle เปิด terminal พิมพ์คำสั่งต่อไปนี้ จะได้ดังรูป เลือก Configure Oracle Grid Infrastructure for New Cluster กด Next จะได้ดังรูป เลือก Configure an Oracle Standalone Cluster กด Next จะได้ดังรูป เลือก Create Local SCAN แก้ชื่อให้ตรงกับที่ขอจดกับ DNS (rac-scan) ดังรูป กด Next…

Grid Infrastructure 18c ตอน 3

ไฟล์ที่ download จาก https://edelivery.oracle.com จะมี 2 ไฟล์คือ V978967-01.zip คือ ไฟล์ติดตั้ง database V978971-01.zip คือ ไฟล์ติดตั้ง grid infrastructure download ไฟล์มาเก็บไว้ที่ /home/oracle/Downloads ของ rac1 เครื่องเดียว เข้าระบบด้วย ผู้ใช้ oracle เปิด terminal unzip สร้าง User Equivalence (Key-Based Authentication) ระหว่าง rac1 และ rac2 จากนั้นตามด้วยคำสั่ง พิมพ์ yes…

Grid Infrastructure 18c ตอน 2

ตอนสองจัดการ Shared disk ล็อคอินด้วยผู้ใช้ oracle เปิด terminal พิมพ์คำสั่ง ต่อไปนี้ เพื่อเป็น root เมื่อถามรหัสผ่าน ให้ใส่รหัสผ่านของ oracle ตรวจสอบว่ามีแฟ้ม /etc/multipath.conf หรือไม่ หากไม่มีให้สั่งคำสั่งต่อไปนี้ ตรวจสอบ shared disk ด้วยคำสั่ง จะเห็นว่ามี mpatha ถึง mpathf สร้าง partition บน mpatha ถึง mpathf ด้วยคำสั่ง สร้าง partition ใหม่ตามขั้นตอนเดิม n แล้ว enter 4…

Grid infrastructure 18c ตอน 1

รอบนี้จะมาติดตั้ง Oracle grid infrastructure 18c กัน สิ่งที่ต้องเตรียม Vmware 2 เครื่อง โดยแต่ละเครื่องมีคุณสมบัติดังนี้ (ปรับลดตามความเหมาะสมได้) 2 CPU 64 core 128 GB Memory HDD 2 ลูก 300GB 1TB Shared Storage ครั้งนี้เลือกใช้ iSCSI 6 ลูกลูกละ 1TB Network Card 3 ใบ IP address โดย 4 IP…

ORA-31623: a job is not attached to this session via the specified handle

ปัญหา พยายามใช้ expdp แล้วเกิด error UDE-31623: operation generated ORACLE error 31623ORA-31623: a job is not attached to this session via the specified handleORA-06512: at “SYS.DBMS_DATAPUMP”, line 3905ORA-06512: at “SYS.DBMS_DATAPUMP”, line 5203ORA-06512: at line 1 งานมา… เมื่อค้นข้อมูลไปเรื่อย ๆ จะพบว่าอาจเกี่ยวของกับการปรับแต่งค่าต่างๆ เกี่ยวกับ memory…

Oracle User expire โดยไม่ทราบสาเหตุ

นักพัฒนาบางท่านที่เพิ่งเริ่มพัฒนาระบบบนฐานข้อมูล Oracle อาจจะเคยเจอปัญหาเมื่อใช้ Oracle ตั้งแต่เวอร์ชัน 11 เป็นต้นไป นั่นคือ เมื่อสร้าง user บน Oracle และใช้งานไปได้ซักระยะอยู่ ๆ user นี้ก็เกิดก็ expire โดยที่ไม่ได้มีใครเข้าแก้ไขการตั้งค่าของ user นี้ ซึ่งเหตุการณ์นี้อาจจะมีสาเหตุแบบเดียวกับที่จะนำเสนอในบทควาามนี้ก็เป็นได้ หมายเหตุ ในบทความนี้จะใช้ Oracle SQL Developer ซึ่งเป็นเครื่องมือในการเข้าถึงและจัดการฐานข้อมูล Oracle มาช่วยในการอธิบายเพื่อให้เห็นภาพได้ง่ายขึ้น ขั้นตอนการตรวจสอบที่มาของปัญหาและการแก้ไข login ด้วย sys ตรวจสอบการตั้งค่า Default Profile โดยเลือกเมนู View –> DBA…

คำสั่ง Update โดยใช้ข้อมูลจากอีกตาราง [Oracle]

ในการสั่ง update ข้อมูล ในบางครั้งเราอาจจะเจอโจทย์ว่า ต้องการ update ข้อมูลในตารางหนึ่งโดยใช้ข้อมูลจากอีกตารางหนึ่ง ซึ่งลักษณะของข้อมูลทั้งสองตารางนี้ จะต้องมีฟีลด์ข้อมูลที่สามารถเชื่อมโยงความสัมพันธ์ของข้อมูลแต่ละเร็คคอร์ดได้ ตัวอย่างข้อมูล มีข้อมูลสองตาราง ตารางที่ 1 เก็บข้อมูลวันในหนึ่งสัปดาห์ภาษาไทย [ชื่อตาราง : DAY_OF_WEEK_THAI] โครงสร้างตารางประกอบด้วย ฟีลด์ ID เก็บ ID ของแต่ละเร็คคอร์ด ฟีลด์ DAY_FULL เก็บข้อมูลวันแบบเต็มภาษาไทย ฟีดล์ DAY_SHORT เก็บข้อมูลวันแบบย่อภาษาไทย ข้อมูลในตารางเป็นดังนี้ ตารางที่ 2 เก็บข้อมูลวันในหนึ่งสัปดาห์ภาษาอังกฤษ [ชื่อตาราง : DAY_OF_WEEK] โครงสร้างตารางประกอบด้วย ฟีลด์ ID เก็บ…

Change BYTE to CHAR for all columns, all tables

เมื่อมีการสร้างฟิลด์ให้มีชนิดเป็น char หรือ varchar2 จริงๆ แล้ว มันมีหน่วยย่อยไปอีกว่าจะให้เป็น Byte หรือ Char ซึ่งโดยปกติจะเป็น Byte สามารถเปลี่ยนค่า default นี้ได้ด้วยการเปลี่ยนตัวแปรของระบบตัวแปรชื่อ nls_length_semantics https://docs.oracle.com/cd/B19306_01/server.102/b14237/initparams127.htm#REFRN10124 ดูรายละเอียดเพิ่มเติม ทีนี้ Byte กับ Char มันสำคัญอย่างไร…สำคัญเรื่องการแปลง Character Set เช่น จาก TH8ASCII เป็น AL32UTF8 จากข้อมูลเดิม 1 ตัวอักษรเท่ากับ 1Byte สำหรับ TH8ASCII และ 3Byte สำหรับ AL32UTF8…

How to safely grant ALTER SYSTEM KILL SESSION “privilege” to non-DBA users

อยากฆ่าคน เอ้ย session บน oracle แต่ไม่มีสิทธิ์ (Privilege) ไปขอสิทธิ์ DBA แล้ว DBA บอกว่าไม่มีสิทธิ์ kill session จะแจกให้!!! ทำไงดี เข้าระบบฐานข้อมูล Oracle ด้วยผู้ใช้ system หรือ sys แล้วสร้าง Procedure ชื่อว่า sp_kill_dev_session ด้วยคำสั่ง จาก code ข้างต้น ให้เปลี่ยน SCOTT เป็น username ที่เป็นเจ้าของ session เช่น เป็นต้น จากตัวอย่าง จะมี…