Fixed : KU$_RADM_FPTM_VIEW in invalid status

ฐานข้อมูลที่จะพบปัญหานี้ Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 OS เป็น CentOS 7.3 หรือ Oracle Enterprise Linux 7.3 ปัญหานี้ข้อสำคัญทำให้ export ข้อมูลไม่ได้ คือไม่สามารถสำรองข้อมูลได้ เข้าระบบด้วยผู้ใช้ oracle สร้างแฟ้ม fix.sql ด้วยคำสั่ง cat >>fix.sql<<EOF CREATE OR REPLACE NONEDITIONABLE TYPE “SYS”.”KU$_RADM_FPTM_T” as object ( vers_major char(1), /* UDT major version # */ vers_minor char(1), /* UDT minor version # */ numbercol number, /* number */ binfloatcol binary_float, /* binary float */ bindoublecol binary_double, /* binary double */ charcol char(1), /* fixed-size character */ varcharcol varchar2(1), /* variable-size character */ ncharcol nchar(1), /* fixed-size national character */ nvarcharcol nvarchar2(1), /* variable-size national character */ datecol date, /* date */ ts_col timestamp, /* timestamp */ tswtz_col timestamp with time zone, /* timestamp with time zone */ fpver number /* version of default fixed point values */ ) / CREATE OR REPLACE FORCE NONEDITIONABLE VIEW “SYS”.”KU$_RADM_FPTM_VIEW” OF “SYS”.”KU$_RADM_FPTM_T” WITH OBJECT IDENTIFIER (fpver) AS select ‘1’,’0′, numbercol, binfloatcol, bindoublecol, charcol, varcharcol, ncharcol, nvarcharcol, datecol,ts_col,tswtz_col, fpver from sys.radm_fptm$ where fpver=1 / EOF เชื่อมต่อกับฐานข้อมูลด้วย sqlplus ด้วยบัญชีผู้ใช้ / as sysdba ที่ prompt SQL> พิมพ์คำสั่ง @/home/oracle/fix.sql ก็จะแก้ปัญหาได้ จบ ขอให้สนุก ที่มา เว็บโดนปิดไปแล้ว

Read More »

เตาะแตะไปกับ Docker ตอนที่ 6 Harbor (an enterprise-class registry server)

จากตอนที่แล้ว เราสามารถทำ Docker registry แบบง่าย ๆ โดยใช้ basic authentication (htpasswd) สำหรับในตอนนี้ เราจะมาทำ Harbor ซึ่งเป็น docker registry ที่มีผู้พัฒนาให้เราสร้างได้ง่ายมากขึ้น และเพิ่มขีดความสามารถให้เราเชื่อมต่อ LDAP/AD เพื่อทำ user authentication และอื่น ๆ อีกมาก ผมทดสอบกับ ubuntu server เวอร์ชั่น 16.04 สมมติว่า เราจดชื่อ FQDN ไว้คือ docker-registry.in.psu.ac.th ให้แก้ไข hostname ให้ถูกต้อง ดังนี้ $ sudo vi /etc/hostname docker-registry.in.psu.ac.th สั่งรีบูตเครื่อง $ sudo reboot   ติดตั้ง ssl certificate เนื่องจากเรายังไม่ได้ใช้ certificate ที่ซื้อมา เราจะใช้ ssl-cert-snakeoil ไปก่อนก็ได้ $ sudo apt install ssl-cert ก่อนจะทำในขั้นตอนต่อไป ขณะนี้ได้ติดตั้ง docker ไว้แล้ว วิธีติดตั้งดูจากเรื่อง เตาะแตะไปกับ Docker ตอนที่ 1 Containers (Build, Ship and Run) หลังจากติดตั้ง docker แล้ว ในการติดตั้ง harbor จะต้องติดตั้ง docker-compose เพิ่ม ทำดังนี้ $ sudo apt install docker-compose   ติดตั้ง harbor $ wget https://github.com/vmware/harbor/releases/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz $ tar xvf harbor-offline-installer-v1.1.2.tgz $ cd harbor/ แก้ไขค่า hostname, ui_url_protocol และ ssl_cert ดังนี้ $ vi harbor.cfg #set hostname hostname = docker-registry.in.psu.ac.th #set ui_url_protocol ui_url_protocol = https …… #The path of cert and key files for nginx, they are applied only the protocol is set to https ssl_cert = /etc/ssl/certs/ssl-cert-snakeoil.pem ssl_cert_key = /etc/ssl/private/ssl-cert-snakeoil.key ทำการติดตั้ง sudo ./install.sh   เข้า web browser ไปยัง https://docker-registry.in.psu.ac.th login เข้าเป็น username admin ในครั้งแรกจะได้รหัสผ่านคือ Harbor12345 แล้วตั้งค่า configuration ตัวอย่างเช่น Authentication ด้วย OpenLDAP แบบ Anonymous Bind ที่เครื่อง ldap server IP คือ 10.168.16.18 ดังนี้ เข้าเมนูตามลำดับดังนี้ Administration > Configuration > Authentication ใส่ข้อมูลเฉพาะช่องที่แนะนำ   Auth Mode: LDAP LDAP URL*: ldaps://10.168.16.18 LDAP Base DN*: dc=example,dc=com LDAP UID*:

Read More »

เตาะแตะไปกับ Docker ตอนที่ 5 Docker registry

อยากลองใช้ docker แต่ยังไม่ต้องการนำ image อัปโหลดไปไว้บน docker hub จะทำอย่างไรได้มั้ย ที่นี่มีคำตอบครับ เราสามารถนำ docker image ที่ได้สร้างขึ้นนั้นไปเก็บไว้ในสิ่งที่เรียกว่า Docker registry ซึ่งแบ่งได้เป็น 2 อย่างคือ Public registry อยู่ที่ hub.docker.com เราจะต้องลงทะเบียนเพื่อขอมีบัญชีผู้ใช้จึงจะสามารถอัปโหลด image ไปเก็บไว้ได้ ส่วนอีกอย่างก็คือ Private (Local) registry จะเป็นการสร้างที่เก็บส่วนตัว ที่เก็บของหน่วยงาน ในบทความนี้จะสาธิตทำที่เก็บ image สำหรับทดสอบงาน การใช้งาน Docker public registry ต้องมี user account ที่ cloud.docker.com จะต้อง login ก่อนจึงจะ push image ขึ้นไปได้ เหมือนที่แสดงตัวอย่างไว้ในบล็อก “เตาะแตะไปกับ Docker ตอนที่ 1” $ docker login ตัวอย่างคำสั่ง push ที่ผมนำ image ไปเก็บไว้ $ docker push woonpsu/docsdocker:part1 ซึ่งเรียกใช้จากที่เครื่องใดก็ได้ ด้วยคำสั่ง pull $ docker pull woonpsu/docsdocker:part1   แต่หากเรายังไม่พร้อมที่จะนำ image ไปไว้บนนั้น เราก็ทำ Local registry ไว้ใช้เองไปพราง ๆ ก่อน ทำได้ 2 แบบ คือ 1. Local registry ที่ใช้งานภายในเครื่องของเราเครื่องเดียว 2. Local registry ที่เราเปิดให้เครื่อง client อื่น ๆ เข้ามาใช้ร่วมได้ Local registry แบบที่ใช้งานภายในเครื่องของเราเครื่องเดียว (localhost:5000) ใช้คำสั่งนี้เพื่อเริ่มต้นสร้าง registry container $ docker run -d -p 5000:5000 –restart=always –name myregistry registry:2 จากนั้นเรา pull image สักอัน จาก hub.docker.com เช่น $ docker pull ubuntu:16.04 หลังจากดัดแปลง(ไม่ทำก็ได้)ตามต้องการแล้วก็ใส่ tag localhost:5000/my-ubuntu ดังนี้ $ docker tag ubuntu:16.04 localhost:5000/my-ubuntu $ docker images แล้วก็ push image ไปยัง local registry ซึ่งก็คือ เครื่องที่เรากำลังใช้งาน (localhost) ใช้ port หมายเลข 5000 ดังนี้ $ docker push localhost:5000/my-ubuntu ซึ่งวิธีการเรียกใช้งาน image ที่เก็บไว้นั้น เป็นดังนี้ $ docker pull localhost:5000/my-ubuntu ก่อนไปทำตัวอย่างถัดไปซึ่งเป็นแบบที่ 2 ให้ลบ container ชื่อ myregistry ที่ทดสอบเสร็จแล้ว ที่ต้องลบเพราะว่าใช้ port หมายเลขเดียวกัน หากใช้หมายเลข port ต่างกัน ก็ไม่ต้องลบ $ docker stop myregistry $ docker rm myregistry   Local registry แบบที่เราเปิดให้เครื่อง client อื่น ๆ เข้ามาใช้ร่วมได้ (docker-registry.localdomain:5000) เราจะต้องเริ่มต้นที่การกำหนดชื่อเครื่อง ผมสมมติตั้งชื่อว่า docker-registry.localdomain ให้กับ

Read More »

Ambari #02 ติดตั้ง Ambari Agent

ต่อจาก Ambari #01: ติดตั้ง Ambari Server ในบทความนี้ จะขอนำเสนอการติดตั้ง Ambari version 2.5.1 จาก HortonWorks ซึ่งจะทำงานกับ Hortonworks Data Platform (HDP)  2.6 โดยติดตั้งบน Ubuntu 16.04 ในส่วนของ “Ambari Agent” [2] ติดตั้ง Ubuntu 16.04 Server 64bit สิ่งที่สำคัญมากคือ FQDN หรือการอ้างชื่อเต็มของ host ดังนั้น ในไฟล์ /etc/hosts บรรทัดแรกต้องเป็น Fully Qualified Domain Name เช่น (ห้ามเป็น localhost เด็ดขาด) และถ้าจะให้ดี ควรมี DNS Record บน Name Server ด้วย 127.0.0.1   ambari02.example.com ambari02 192.168.1.122   ambari02.example.com ambari02 ต้องทดสอบใช้คำสั่ง hostname -f แล้วได้ชื่อ FQDN ถึงจะใช้งานได้ ตั้งค่า Ambari Public Repository sudo su wget -O /etc/apt/sources.list.d/ambari.list http://public-repo-1.hortonworks.com/ambari/ubuntu16/2.x/updates/2.5.1.0/ambari.list apt-key adv –recv-keys –keyserver keyserver.ubuntu.com B9733A7A07513CAD apt-get update -y sudo dpkg –configure -a echo never > /sys/kernel/mm/transparent_hugepage/enabled apt-cache showpkg ambari-server ติดตั้ง Ambari Agent apt-get install -y ambari-agent แก้ไขไฟล์ /etc/ambari-agent/conf/ambari-agent.ini ให้ระบบ hostname ไปยัง ambari server ในที่นี้คือ ambari01.example.com hostname=ambari01.example.com … run_as_user=ambari เนื่องจากเป็นการติดตั้งแบบ non-root จึงต้องทำการแก้ไข visudo ด้วย โดยเพิ่มบรรทัดต่อไปนี้เข้าไป # Ambari Customizable Users ambari ALL=(ALL) NOPASSWD:SETENV: /bin/su hdfs *,/bin/su ambari-qa *,/bin/su ranger *,/bin/su zookeeper *,/bin/su knox *,/bin/su falcon *,/bin/su ams *, /bin/su flume *,/bin/su hbase *,/bin/su spark *,/bin/su accumulo *,/bin/su hive *,/bin/su hcat *,/bin/su kafka *,/bin/su mapred *,/bin/su oozie *,/bin/su sqoop *,/bin/su storm *,/bin/su tez *,/bin/su atlas *,/bin/su yarn *,/bin/su kms *,/bin/su activity_analyzer *,/bin/su livy *,/bin/su zeppelin *,/bin/su infra-solr *,/bin/su logsearch * Start Ambari Agent ambari-agent start

Read More »

Ambari #01: ติดตั้ง Ambari Server

Apache Ambari เป็นเครื่องมือที่ทำให้การจัดการ Hadoop ง่ายขึ้น [1] แต่การติดตั้ง Apache Ambari เองนั้น (จาก Apache Project) ก็มีความยุ่งยากเล็กน้อย เพราะต้อง Build Source เอง จึงมีบริษัท HortonWorks เค้าไปทำตัว Binary มาให้ download และติดตั้งได้ง่ายกว่า Ambari ประกอบด้วย Ambari Server และ Ambari Agent ซึ่ง Server จะเป็นตัวสั่งการให้ติดตั้ง Hadoop Component ต่างๆลงไปบน Agent ในบทความนี้ จะขอนำเสนอการติดตั้ง Ambari version 2.5.1 จาก HortonWorks ซึ่งจะทำงานกับ Hortonworks Data Platform (HDP)  2.6 โดยติดตั้งบน Ubuntu 16.04 ในส่วนของ “Ambari Server” [2] ติดตั้ง Ubuntu 16.04 Server 64bit สิ่งที่สำคัญมากคือ FQDN หรือการอ้างชื่อเต็มของ host ดังนั้น ในไฟล์ /etc/hosts บรรทัดแรกต้องเป็น Fully Qualified Domain Name เช่น (ห้ามเป็น localhost เด็ดขาด) และถ้าจะให้ดี ควรมี DNS Record บน Name Server ด้วย 192.168.1.121   ambari01.example.com ambari01 ต้องทดสอบใช้คำสั่ง hostname -f แล้วได้ชื่อ FQDN ถึงจะใช้งานได้ UPDATE: ในการระบบทดสอบ ซึ่งประกอบด้วยเครื่องไม่เกิน 5 เครื่อง อาจจะใช้ /etc/hosts บันทึก IP Address และ FQDN ของทุกเครื่องใน Cluster และต้องสร้าง /etc/hosts ให้เหมือนกันทุกเครื่องด้วยเช่นกัน แต่หากต้องทำระบบขนาดใหญ่ แนะนำให้ใช้ DNS ซึ่งต้องทำ Reverse DNS ด้วย กล่าวคือ ต้อง nslookup 192.168.1.2 แล้วกลับมาเป็น ambari01.example.com ได้ แต่หากไม่สามารถจัดการ DNS หลักขององค์กรได้ ก็พอจะใช้งาน dnsmasq ช่วยได้ โดยวิธีการติดตั้งและใช้งานมีดังนี้ apt install dnsmasq แก้ไขไฟล์ /etc/dnsmasq.conf เพิ่มบรรทัดต่อไปนี้ interface=eth0 address=/ambari01.example.com/192.168.1.121 ptr-record=121.1.168.192.in-addr.arpa,ambari01.example.com address=/ambari02.example.com/192.168.1.122 ptr-record=122.1.168.192.in-addr.arpa,ambari02.example.com …. address=/ambari99.example.com/192.168.1.219 ptr-record=219.1.168.192.in-addr.arpa,ambari99.example.com จากนั้น ให้แก้ไขไฟล์ /etc/network/interfaces ของทุกเครื่อง ให้ชี้มาที่ IP ของ Ambari Server ในที่นี้คือ 192.168.1.121 ก็จะใช้งานได้อย่างราบรื่น ตั้งค่า Ambari Public Repository sudo su wget -O /etc/apt/sources.list.d/ambari.list http://public-repo-1.hortonworks.com/ambari/ubuntu16/2.x/updates/2.5.1.0/ambari.list apt-key adv –recv-keys –keyserver keyserver.ubuntu.com B9733A7A07513CAD apt-get update -y sudo dpkg –configure -a echo never > /sys/kernel/mm/transparent_hugepage/enabled apt install -y ntp apt-cache showpkg ambari-server ติดตั้ง Ambari Server apt-get install

Read More »