Migration ไม่ยากอย่างที่คิด😁
ขั้นตอนการติดตั้ง SQL Server 2017 บน Linux RedHat 7.4 🍒
User ที่ใช้ในการติดตั้ง SQL Server 2017 คือ root
- Download the Microsoft SQL Server RedHat repository configuration file
# sudo curl -o /etc/yum.repos.d/mssql-server.repo
2. Run command ต่อไปนี้เพื่อติดตั้ง SQL Server 2017
# sudo yum install -y mssql-server
3. หลังจากทำการติดตั้ง SQL Server 2017 เสร็จเรียบร้อยแล้ว ให้ทำการ configure SQL Server ตาม command ต่อไปนี้
# sudo /opt/mssql/bin/mssql-conf setup
ในการสาธิตนี้ edition ของ SQL Server ที่ถูกเลือกคือ Enterprise (PAID) นั้นคือหมายเลข 6
หลังจากเลือก edition และ accept the license ให้ทำการตั้งค่ารหัสผ่าน ของ SQL Server 2017 เมื่อเสร็จขั้นตอนการติดตั้ง SQL Server หน้าจอแสดงผลจะแสดงคำว่า ‘Set has completed successfully. SQL Server is now starting. เหมือนรูปภาพด้านบน’
4. หลังจากทำการ configure SQL Server เสร็จแล้ว ให้ทำการตรวจสอบสถานะของ SQL Server ตามคำสั่งต่อไปนี้
# systemctl status mssql-server
5. หลังจากตรวจสอบสถานะของ SQL Server เสร็จแล้วให้ทำการ configure firewall ตามคำสั่งต่อไปนี้
# sudo firewall-cmd --zone=public --add-port=1433/tcp –permanent# sudo firewall-cmd --reload
ขั้นตอนการติดตั้ง SQL Server command-line tool
- Download configuration repository file ตามคำสั่งต่อไปนี้
# sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/7/prod.repo
2. ถ้าในเครื่อง server เคยมี version เก่าของ mssql-tool ที่เคยทำการติดตั้งไว้ ให้ลบ unixODBC ตัวเก่าออกด้วยคำสั่งต่อไปนี้
$ sudo yum remove unixODBC-utf16 unixODBC-utf16-devel
3. ติดตั้ง unixODBC developer ด้วยคำสั่งต่อไปนี้
# sudo yum install -y mssql-tools unixODBC-devel
หมายเหตุ: ถ้าเกิดปัญหาระหว่างการติดตั้งเนื่องจาก เครื่อง server ต้องการให้ติดตั้ง unixOBDC 2.3.1 ซึ่งสามารถทำได้ตามขั้นตอนต่อไปนี้
ขั้นตอนการติดตั้ง unixODBC สำหรับ SQL Server command-line tool 🍒
- ลงทะเบียน Microsoft Linux ตามคำสั่งต่อไปนี้
# curl https://packages.microsoft.com/config/rhel/7/prod.repo | sudo tee /etc/yum.repos.d/mssql-tools.repo
- ทำการติดตั้ง unixODBC ตามคำสั่งต่อไปนี้
# sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/unixODBC-2.3.1-11.el7.x86_64.rpm# sudo yum install http://mirror.centos.org/centos/7/os/x86_64/Packages/unixODBC-devel-2.3.1-11.el7.x86_64.rpm
เสร็จสิ้นขั้นตอนการติดตั้ง unixODBC 😁
4. ทำการติดตั้ง SQL Server command-line tool ด้วยคำสั่งต่อไปนี้
$ sudo ACCEPT_EULA=Y yum install msodbcsql17 mssql-tools
5. เพื่อความสะดวกสบายมากยิ่งขึ้น ให้ทำการเพิ่ม /opt/mssql-tools/bin/ ไปยัง PATH enviromment variable ด้วยคำสั่งต่อไปนี้ คำสั่งนี้จะทำให้สามารถรัน SQL Server command-line tool ได้โดยไม่ต้องระบุ PATH
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profileecho 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrcsource ~/.bashrc
6. ทดสอบการเข้าใช้งาน SQL Server 2017 ด้วยคำสั่งต่อไปนี้
sqlcmd -S localhost -U SA -P '<YourPassword>'
หลังจากการติดตั้ง SQL Server 2017 บน Linux RedHat เสร็จเรียบร้อยแล้ว ให้ทำการสร้าง Database เปล่าเพื่อรองรับข้อมูลที่จะย้ายมาลงที่ SQL Server 2017 ได้เลย สำหรับ Demo นี้จะสร้าง Database ชื่อว่า orcl ไว้รอที่ฝั่ง SQL Server
ขั้นตอนการติดตั้ง SQL Server Migration Assistant (SSMA) 🍒
การติดตั้ง SSMA นั้นแบ่งออกเป็น 2 ส่วน ตามลำดับต่อไปนี้
1. ติดตั้ง SSMA for Oracle Extension Pack Setup บนเครื่องต้นทาง นั้นก็คือเครื่อง Windows Server ที่ติดตั้ง Oracle Database แล้ว
- ติดตั้ง SSMA for Oracle Extension Utility บนเครื่องปลายทางที่ติดตั้ง SQL Server 2017 ผ่านการ remote
2. ติดตั้ง SSMA for Oracle Setup: คือ ขั้นตอนการติดตั้งตัว interface ของ SSMA ทั้งนี้ขั้นตอนการติดตั้งนั้นก็ขึ้นอยู่กับวัตถุประสงค์การ
ขั้นตอนการ Migration โดยใช้โปรแกรม SSMA 🍒
- เมื่อเปิดหน้าโปรแกรม กดปุ่ม New Project เพื่อทำการสร้างโปรเจคขึ้นมา ตั้งชื่อในช่อง Name สามารถตั้งค่า Location สำหรับ path ที่ใช้เก็บตัวโปรเจค เลือกตัวเลือก ‘SQL Server 2017’ ในแทบ Migrate to และกด OK
2. กดปุ่ม Connect to Oracle เพื่อทำการเชื่อมต่อไปยัง Oracle Database
หน้าจอ Connect to Oracle จะปรากฏขึ้นมา และให้เราทำการตั้งค่าตัวแปรลงไป
3. เมื่อการเชื่อมต่อประสบความสำเร็จ Oracle Metadata Expolrer จะแสดงผลดังรูปด้านล่างที่แสดงผลของ HR schema
4. ทำการเชื่อมต่อไปยัง SQL Server 2017 บน Linux RedHat Server กดปุ่ม Connect to SQL Server ที่ด้านบนทางซ้ายของโปรแกรม
5. เมื่อโปรแกรมแสดงหน้าต่อการเชื่อมต่อไปยัง SQL Server ให้ทำการตั้งค่าลงไปและกดปุ่ม connect
6. เมื่อการเชื่อมต่อสำเร็จ สามารถดู Database ได้ที่ SQL Server Metadata Explorer
7. เริ่มการ convert schema จาก Oracle Database ที่ HR schema ใน Oracle Metadata Explorer ให้คลิ๊กเครื่องหมายถูกที่ schema HR และ orcl database ที่ SQL Server หลังจากนั้นคลิ๊กขวาที่ HR schema และกดเลือก convert schema
เมื่อเข้าสู่ขั้นตอนการ convert schema ช่อง Output จะแสดงผลดังนี้
สังเกตุที่หน้า SQL Server Metadata Explorer จะมี object ของ HR schema ที่ถูก convert ไปแล้ว
ขั้นตอนของการ convert schema คือ การโหลดข้อมูลของ object ใน Oracle database ไปไว้ยัง SQL Server Migration Assistant (SSMA) ยังไม่ใช่การโหลดข้อมูลไปยัง SQL Server Database
8. ขั้นตอนการ synchronize database จะเป็นการโหลดของมูลที่มาถูกพักไว้ที่ SSMA ในขั้นตอนก่อนหน้านี้ ไปยัง SQL Server Database โดยมีวิธีทำต่อไปนี้ ในหน้า SQL Server Metadata Explorer ที่ schema HR ให้คลิ๊กขวาและเลือก Synchronize with Database
เมื่อขั้นตอนการ synchronize เสร็จสมบูรณ์ ช่อง output จะแสดงข้อความ synchronization operation is complete.
9. ลำดับถัดมาคือการ migrate ข้อมูล ให้ไปที่ SQL Server Metadata Explorer และเลือกคลิ๊กเฉพาะ schema HR หลังจากนั้นไปที่ Oracle Metadata Explorer คลิ๊กขวาที่ schema HR และเลือก Migrate Data
10. เมื่อทำการกดตัวเลือก โปรแกรมจะแสดงหน้าจอให้เชื่อมต่อไปยัง Oracle และ SQL Server 2017 เพื่อทำการ migration และเมื่อขั้นตอนการ migration เสร็จสมบูรณ์ ตัวโปรแกรมจะแสดง report เพื่อให้ตรวจสอบความเรียบร้อย
SQL Server Metadata Explorer จะแสดง object ที่ถูก migration
ขั้นตอนการทดสอบการ Migration 🍒
- เชื่อมต่อเข้า SQL Server 2017 บน Linux RedHat
- เชื่อมต่อไป schema HR ตาม statement ต่อไปนี้
3. Query ดู table ใน database HR ตาม statement ต่อไปนี้
4. ทดสอบการดึงข้อมูลจาก HR Database ใน SQL Server 2017
ทั้งนี้ทั้งนั้นการ Migration เองก็ต้องมีการตรวจสอบข้อมูลที่ต้องทำการย้ายว่าตรงตามความต้องการกับผู้ใช้งานเองหรือไม่ ต่อไปเราไปดูข้อดี ข้อเสียของตัวโปรแกรม SSMA กันดีกว่า
สามารถหาข้อมูลเพิ่มเติมได้จาก link ต่อไปนี้ Migrate an Oracle schema to SQL Server 2017 on Linux with the SQL Server Migration Assistant