SLOB Sustained Throughput Test: Preparing The Test
This page is part of a process for running a sustained throughput test using Oracle SLOB. If you stumbled across this by accident, you can start at the beginning here.
For this example, I’m starting with a fresh Oracle Linux 6 Update 5 installation. I’ve already installed Oracle Grid Infrastructure 11.2.0.4 and configured my storage to appear via Linux multipathing. I’m also using Oracle’s ASMLib kernel library. As a result I have a 2TB ASM diskgroup which I’ve imaginatively called +DATA (I’m not going to bother with a fast recovery area):
[oracle@server4 ~]$ cat /etc/oracle-release Oracle Linux Server release 6.5 [oracle@server4 ~]$ uname -r 3.8.13-26.2.3.el6uek.x86_64 [oracle@server4 ~]$ asmcmd ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Name MOUNTED EXTERN N 512 4096 67108864 2097152 2095616 DATA/
I have also already installed Oracle Database 11.2.0.4 and build an empty database called (equally imaginatively) ORCL. You don’t particularly need to do anything special when you create the database, because once you have it up and running we will make some changes via the parameter file and then install SLOB.
You do, however, need to make sure you have plenty of redo log space – something you can tackle after database creation if you wish to avoid the clunky DBCA or OUI redo log options. I’ve created ten online redo logs, each sized 1GB. I’m running on a flash system so I’ve used a blocksize of 4k for the logs, which means setting the underscore parameter _disk_sector_size_override=TRUE as per the following My Oracle Support:
Using 4k Redo Logs on Flash and SSD-based Storage (Doc ID 1681266.1)
If you want to know more about the background of using a 4k blocksize on flash, read here.
So here we go creating the log files:
SQL> alter system set "_disk_sector_size_override"=TRUE scope=both; System altered. SQL> alter database add logfile group 1 size 1G blocksize 4k; Database altered.
I’ll do that another nine times and now I have a full compliment of ten logs:
SQL> select group#, thread#, bytes/1024/1024 as MB, blocksize from v$log; GROUP# THREAD# MB BLOCKSIZE ---------- ---------- ---------- ---------- 1 1 1024 4096 2 1 1024 4096 3 1 1024 4096 4 1 1024 4096 5 1 1024 4096 6 1 1024 4096 7 1 1024 4096 8 1 1024 4096 9 1 1024 4096 10 1 1024 4096 10 rows selected.
Next up I need to create the tablespace which will contain the SLOB data. I’m going with convention and calling this IOPS, so here goes:
SQL> create bigfile tablespace IOPS datafile size 1100G; Tablespace created.
We are also going to need a whole lot of temporary tablespace:
SQL> alter tablespace temp add tempfile size 30G; Tablespace altered. SQL> alter tablespace temp add tempfile size 30G; Tablespace altered. SQL> alter tablespace temp add tempfile size 30G; Tablespace altered. SQL> alter tablespace temp add tempfile size 30G; Tablespace altered.
Finally, I need to configure the database instance for use with SLOB. Let’s create a PFILE first:
SQL> create pfile='/home/oracle/orcl.ora' from spfile; File created.
Now we can edit it to look like this:
*._db_block_prefetch_limit=0 *._db_block_prefetch_quota=0 *._db_file_noncontig_mblock_read_count=0 *._disk_sector_size_override=TRUE *.audit_trail='none' *.compatible='11.2.0.4.0' *.control_files='+DATA/orcl/controlfile/current.261.852997535' # Change this! *.db_block_size=8192 *.db_cache_size=1G *.db_create_file_dest='+DATA' *.db_name='orcl' *.diagnostic_dest='/u01/app/oracle' *.log_buffer=134217728 *.pga_aggregate_target=10G *.processes=1024 *.remote_login_passwordfile='EXCLUSIVE' *.resource_manager_plan='' *.shared_pool_size=4G *.undo_tablespace='UNDOTBS1' *.use_large_pages='ONLY'
Remember that the CONTROL_FILES parameter will need to be correct for your system or it will be a real short test. If you are wondering about the first three underscore parameters then read this post by my buddy Yury. I’m using the USE_LARGE_PAGES=ONLY parameter to ensure huge pages are being correctly used, but that’s entirely optional so remove it if you aren’t using huge pages.
Let’s restart the database with the new init.ora and convert it back into an SPFILE
SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup pfile='/home/oracle/orcl.ora' ORACLE instance started. Total System Global Area 5629419520 bytes Fixed Size 2262936 bytes Variable Size 4412409960 bytes Database Buffers 1073741824 bytes Redo Buffers 141004800 bytes Database mounted. Database opened. SQL> create spfile from pfile='/home/oracle/orcl.ora'; File created.
Now we are ready to install SLOB…
Next page: Installing Oracle SLOB