How-to Oracle XE

Posted In: , , , . By taladnam

ต้นเดือนที่ผ่านมา พยายามจะ copy table ของ Oracle Enterprise View จาก Oracle Server (ซึ่งหน่วยงานอื่น provide ให้ read-only) มาเก็บสำรองไว้ที่ Oracle Express Edition (Oracle XE) ที่ดูแลเอง เอาไว้ใช้ในยามฉุกเฉิน เมื่อระบบหลักมีอันเป็นไปไม่ว่าด้วยเหตุใด ทำให้ใช้งานไม่ได้ ยามวิกฤตนั้นจะได้ไม่มืดมนหนทาง

ออกตัวก่อนว่า ผมเป็นคนประเภทรู้อะไรก็รู้อย่างเป็ด แม้จะทำได้หลายอย่าง แต่ก็ไม่ค่อยได้เด่นซักเรื่อง ขอแก้ไขปัญหาให้ระบบนำมาใช้งานได้เป็นลำดับแรก (เจอปัญหาอื่นๆ ก็ค่อยๆ ไล่แก้ โดยอาศัยประสบการณ์ที่แชร์กันบนเน็ตเป็นที่พึ่ง) เพราะฉะนั้นแน่ใจได้เลยว่า จะไม่ได้คำอธิบายที่ลงลึกในรายละเอียดจากบล็อกนี้

Oracle XE

  • Limitation ข้อจำกัดของการนำ Oracle XE มาใช้งานมีบอกไว้ในเว็บไซต์ของ Oracle ดังนี้
    Oracle Database XE can be installed on any size host machine with any number of CPUs (one database per machine), but XE will store up to 4GB of user data, use up to 1GB of memory, and use one CPU on the host machine.
  • Installation ผมต้องทำการแก้ไขปัญหา swap memory ของเครื่องต่ำกว่า 1GB ก่อนจะติดตั้ง ตามนี้
    # dd if=/dev/zero of=/swapfile bs=1M count=400
    # mkswap /swapfile
    # swapon /swapfile
    ดำเนินการติดตั้งต่อไป
    #vi /etc/apt/sources.list
    โดยเพิ่มบรรทัดนี้เข้าไป
    deb http://oss.oracle.com/debian/ unstable main non-free
    เสร็จแล้ว
    #wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | apt-key add -
    จากนั้น
    #apt-get update
    #apt-get install oracle-xe
    สุดท้ายแล้ว
    #/etc/init.d/oracle-xe configure
  • Configuration เป็นขั้นตอนที่ผมติดอยู่นาน โดยเฉพาะเรื่องการตั้งค่า encoding ของ database ให้เป็นภาษาไทย (TH8TISASCII) เมื่อเข้าไปใน SQL command line prompt แล้ว (sqlplus) ให้ลองดูตัวแปรของ database ตามนี้
    SQL> select * from nls_database_parameters;

    PARAMETER VALUE
    ------------------------------ ----------------------------------------
    NLS_LANGUAGE AMERICAN
    NLS_TERRITORY AMERICA
    NLS_CURRENCY $
    NLS_ISO_CURRENCY AMERICA
    NLS_NUMERIC_CHARACTERS .,
    NLS_CHARACTERSET TH8TISASCII
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD-MON-RR
    NLS_DATE_LANGUAGE AMERICAN
    NLS_SORT BINARY
    NLS_TIME_FORMAT HH.MI.SSXFF AM

    PARAMETER VALUE
    ------------------------------ ----------------------------------------
    NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
    NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
    NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
    NLS_DUAL_CURRENCY $
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    NLS_NCHAR_CHARACTERSET TH8TISASCII
    NLS_RDBMS_VERSION 10.2.0.1.0

    20 rows selected.
    มีตัวแปรที่เกี่ยวข้องกับ 2 ตัว คือ NLS_CHARACTERSET กับ NLS_NCHAR_CHARACTERSET ซึ่งผมไม่ขออธิบายเกี่ยวกับตัวแปรทั้งสองตัว ณ ตรงนี้ แต่ไปดูวิธีแก้ค่าให้เป็น TH8TISASCII เลยละกัน เริ่มจาก NLS_CHARACTERSET ทำตามนี้เลยครับ
    SQL> conn sys@INSTANCE as sysdba
    Enter password:
    Connected.
    SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
    SQL> ALTER DATABASE OPEN;
    SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE TH8TISASCII;
    ส่วน NLS_NCHAR_CHARACTERSET ก็ทำแบบนี้ครับ
    SQL> conn sys@INSTANCE as sysdba
    Enter password:
    Connected.
    SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
    SQL> ALTER DATABASE OPEN ;
    SQL> UPDATE props$ SET value$='TH8TISASCII' WHERE name IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
    SQL> commit;
  • Operation ในที่นี้หมายถึงการ Copy table from one to another instance เพื่อป้องกันปัญหาการอ่าน column ที่เป็นภาษาไทยไม่ออก ก่อน run คำสั่ง sqlplus เพื่อเข้าไปใน SQL command line prompt ที่ bash shell จำเป็นต้อง setup ตัวแปร NLS_LANG ตามนี้ซะก่อน
    export NLS_LANG=AMERICAN_AMERICA.TH8TISASCII
    จากนั้นค่อยทำการ copy ตาม sytax ข้างล่างนี้ต่อไป
    copy from user/pass@SRC_INSTANCE to user/pass@DST_INSTANCE replace dst_table using select * from src_table;
    ผมใช้วิธีง่ายๆ เพราะตัว Instance ของ Oracle XE ฝั่งปลายทางนั้น อย่างที่บอกคือ ไว้ใช้ในยามฉุกเฉินกรณีที่ตัวหลักที่ฝั่งต้นทางล่มไปนานๆ เท่านั้น โดยให้ cron ตั้งเวลาให้เหมาะสมเพื่อ run script ที่เขียนไว้สำหรับ copy หลายๆ tables ข้างล่างนี้เป็นตัวอย่าง shell script ที่ผมใช้ (ไฟล์ copy.sql เป็น sql command ที่ใช้สำหรับ copy table ตามรูปแบบ syntax ข้างบน)
    #!/bin/bash

    export NLS_LANG=AMERICAN_AMERICA.TH8TISASCII
    export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
    export PATH=$ORACLE_HOME/bin:$PATH

    $ORACLE_HOME/bin/sqlplus user/pass@DST_INSTANCE @copy.sql

Links

 



install Firefox3 แล้วพบปัญหาว่า shadow ของ drop down menu มันค้างบนหน้าจอตลอด ไม่หายจนกว่าจะปิด Firefox

หาข้อมูลวิธีแก้อยู่หลายวัน เพิ่งเจอเมื่อเช้านี้ แก้และไปให้ข้อมูล comment ไว้ที่ forum ของ Firefox Support



พอ uncheck "Enable taskbar transparency" ปัญหาก็หายไป -- จบรายงาน

 

วันนี้ ลองใช้โปรแกรม Proxy Sniffer ดูว่า YouTube session ของ TrueHiSpeed ADSL ที่บ้าน โดน redirect เข้า ip address อะไร แค่นั้นเองครับ (ที่จริงก็รู้อยู่แล้วว่า True ต้องทำไว้ เพื่อ block vdo clips หลายๆ อัน)



Name: 61-91-88-111.static.asianet.co.th
Address: 61.91.88.111

ส่วนบาง URL ก็โดน redirect ไปที่หน้านี้ http://58.97.5.29/ict.html
ซึ่งมีภาพวิวสวยๆ ให้ดูครับ

 

คัดลอกมาจาก: Fixing NO_PUBKEY 2E2BCDBCB38A8516 error from Oracle Debian repository

จะติดตั้ง Oracle XE และ Oracle XE Client Packages บน Debian Linux โดย

1) เพิ่มบรรทัดนี้ใน /etc/apt/source.list

deb http://oss.oracle.com/debian/ unstable main non-free


2) apt-get update พบ error อย่างนี้

W: GPG error: http://oss.oracle.com unstable Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 2E2BCDBCB38A8516
W: You may want to run apt-get update to correct these problems


3) อ้างอิงจาก link ข้างบน ทำตาม 3 ขั้นตอน

# gpg --keyserver subkeys.pgp.net --recv 2E2BCDBCB38A8516
gpg: requesting key B38A8516 from hkp server subkeys.pgp.net
gpg: key B38A8516: "Oracle OSS group (Open Source Software group) " not changed
gpg: Total number processed: 1
gpg: unchanged: 1

และ

# wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle
--07:51:50-- http://oss.oracle.com/el4/RPM-GPG-KEY-oracle
=> `RPM-GPG-KEY-oracle'
Resolving oss.oracle.com... 141.146.12.120
Connecting to oss.oracle.com[141.146.12.120]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1,744 [text/plain]

100%[====================================================>] 1,744 --.--K/s

07:51:51 (16.63 MB/s) - `RPM-GPG-KEY-oracle' saved [1744/1744]

# apt-key add RPM-GPG-KEY-oracle
OK


4) จากนั้นก็ apt-get update อีกครั้ง ไม่พบ error แล้ว

 

Replace Visio

Posted In: , , , . By taladnam

Visio เป็น Desktop Software License ตัวเดียว ที่ผมยังหา Open Source มาทดแทน ให้ทำงานได้เกินกว่า 60% ของความคาดหวังไม่ได้ แต่ก็ลองค้นหาและไล่เรียงดู บันทึกเก็บไว้หน่อยแล้วกัน

Offline

Online

ที่มา: http://linuxrevolution.blogspot.com