Big endian vs Little endian

(Batmunkh Moltov) #1

Үйлдлийн системээс хамаараад файлын endian нь Big болон Little гэсэн 2 форматтай байж болох бөгөөд ижил форматтай файлуудын хувьд шууд хуулан ашиглах боломжтой байдаг.

Little Endian

Энэ нь byte-ийн хамгийн бага дугаартай нь санах ойн хамгийн бага дугаарлалт дээр (low-order) байрлана гэсэн үг юм. Linux, Windows үйлдлийн системүүд “Little Endian” форматыг ашигладаг.

Жишээ нь :

Санах ойн хаяг+0 --> Byte0
Санах ойн хаяг+1 --> Byte1
Санах ойн хаяг+2 --> Byte2
Санах ойн хаягs+3 --> Byte3
Санах ойн хаягs+4 --> Byte4
Санах ойн хаягs+5 --> Byte5

Big Endian

Энэ нь byte-ийн хамгийн их дугаартай нь санах ойн хамгийн бага дугаарлалт дээр (high-order) байрлана гэсэн үг юм. Solaris, AIX, Apple Mac үйлдлийн системүүд “Big Endian” форматыг ашигладаг.

Жишээ нь :

Санах ойн хаяг+0 --> Byte5
Санах ойн хаяг+1 --> Byte4
Санах ойн хаяг+2 --> Byte5
Санах ойн хаягs+3 --> Byte2
Санах ойн хаягs+4 --> Byte1
Санах ойн хаягs+5 --> Byte0

Oracle өгөгдлийн сангийн файл форматыг мэдэхийн тулд дараах SQL -ийг ашиглаж болно.

SQL> set lin200
SQL> select * from v$transportable_platform order by platform_id;
PLATFORM_ID PLATFORM_NAME			     ENDIAN_FORMAT	CON_ID
----------- ---------------------------------------- -------------- ----------
	  1 Solaris[tm] OE (32-bit)		     Big		     0
	  2 Solaris[tm] OE (64-bit)		     Big		     0
	  3 HP-UX (64-bit)			     Big		     0
	  4 HP-UX IA (64-bit)			     Big		     0
	  5 HP Tru64 UNIX			     Little		     0
	  6 AIX-Based Systems (64-bit)		     Big		     0
	  7 Microsoft Windows IA (32-bit)	     Little		     0
	  8 Microsoft Windows IA (64-bit)	     Little		     0
	  9 IBM zSeries Based Linux		     Big		     0
	 10 Linux IA (32-bit)			     Little		     0
	 11 Linux IA (64-bit)			     Little		     0
	 12 Microsoft Windows x86 64-bit	     Little		     0
	 13 Linux x86 64-bit			     Little		     0
	 15 HP Open VMS 			     Little		     0
	 16 Apple Mac OS			     Big		     0
	 17 Solaris Operating System (x86)	     Little		     0
	 18 IBM Power Based Linux		     Big		     0
	 19 HP IA Open VMS			     Little		     0
	 20 Solaris Operating System (x86-64)	     Little		     0
	 21 Apple Mac OS (x86-64)		     Little		     0

20 rows selected.

Дараах жишээ нь TTS (Transportable Tablespaces)-д ашиглагдана. Linux -с AIX систем рүү датафайлыг зөөхөөс өмнө хийх үйлдэл юм.

[oracle@db01 ~]$ rman target /

Recovery Manager: Release 12.1.0.2.0 - Production on Sat Feb 23 21:26:56 2019

Copyright (c) 1982, 2014, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ORCL (DBID=1493294597)

RMAN> convert tablespace example to platform 'IBM Power Based Linux' db_file_name_convert '/u01/app/oracle/oradata/orcl/example01.dbf','/u01/app/oracle/oradata/orcl/example02-big.dbf';

Starting conversion at source at 23-FEB-19
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=19 device type=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of conversion at source command at 02/23/2019 21:27:48
RMAN-06599: Tablespace EXAMPLE is not read-only

RMAN> alter tablespace example read only;

Statement processed

RMAN> convert tablespace example to platform 'IBM Power Based Linux' db_file_name_convert '/u01/app/oracle/oradata/orcl/example01.dbf','/u01/app/oracle/oradata/orcl/example02-big.dbf';

Starting conversion at source at 23-FEB-19
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile conversion
input datafile file number=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf
converted datafile=/u01/app/oracle/oradata/orcl/example02-big.dbf
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:56
Finished conversion at source at 23-FEB-19

RMAN>
1 Like