As explained previously, you can easily get a history for sqlplus and rman on lnux.
I forgot to mention that the easiest way to automatically use it is to set up an alias in your shell
Ok, after having some time for playing around I decided to try a 12c installation on debian wheezy.
install mandatory packages
apt-get install binutils autoconf automake bzip2 gcc less libc6-dev make libstdc++5 unzip zlibc build-essential libaio1
create some links
Some libs are expected in other directories, we need to change that
ln -s /usr/lib/x86_64-linux-gnu/ /usr/lib64
I chose fluxbox but you can also take anything else like xterm, gnome, kde….
apt-get install fluxbox
prepare user and groups
useradd oracle -m -d /home/oracle -g oinstall -G dba -s /bin/bash
there are several kernel parametersw that have to be changed to succesfully install the database, here is a script that helps you to determine them
echo "sem: ";echo "min 250 32000 100 128"; echo "is " `cat /proc/sys/kernel/sem`; echo; \
echo "shmall: ";echo "min 2097152"; echo "is " `cat /proc/sys/kernel/shmall`; echo; \
echo "shmmax - should be able to hold the SGA - max 4G-1byte: ";echo "is " `cat /proc/sys/kernel/shmmax`; echo; \
echo "shmmni: ";echo "min 4096"; echo "is " `cat /proc/sys/kernel/shmmni`; echo; \
echo "file-max: ";echo "min 6815744"; echo "is " `cat /proc/sys/fs/file-max`; echo; \
echo "ip_local_port_range: ";echo "min/max 9000 65500"; echo "is " `cat /proc/sys/net/ipv4/ip_local_port_range`; echo; \
echo "rmem_default: ";echo "min 262144"; echo "is " `cat /proc/sys/net/core/rmem_default`; echo; \
echo "rmem_max: ";echo "min 4194304"; echo "is " `cat /proc/sys/net/core/rmem_max`; echo; \
echo "wmem_default: ";echo "min 262144"; echo "is " `cat /proc/sys/net/core/wmem_default`; echo; \
echo "wmem_max: ";echo "min 1048576"; echo "is " `cat /proc/sys/net/core/wmem_max`; echo; \
echo "aio-max-nr: ";echo "max 1048576"; echo "is " `cat /proc/sys/fs/aio-max-nr`; echo;
change necessary parameters
you have just to change the parameters that don't fit, but feel free to set them all to the minimum with this script
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
# !!!! needs to fit YOUR SGA (=main memory for database, be sure to have enough ram for PGA etc.)!!!!
echo "kernel.shmmax = 1200000000" >> /etc/sysctl.conf
#echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
#echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048576" >> /etc/sysctl.conf
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
change some limits
also some limits have to be set
echo "oracle soft nproc 2047" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "oracle soft nofile 1024" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
I prefer to separate software, database files and recovery files so i put them under /opt/oracle (mountpoint) in different directories
mkdir -p /opt/oracle/app/oracle/opt/oracle
mkdir -p /opt/oracle/oradata
mkdir -p /opt/oracle/flash_recovery_area
chown -R oracle:oinstall /opt/oracle
chmod -R 775
These steps prevent errors when the installer links some libraries
ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/basename /bin/basename
after unzipping the installation files add some tweaks...
Some makefiles need manual tweaking because they can't find required libs beause of some environment issues
sed -i 's/\$(PLSHPROF_LINKLINE)/\$(PLSHPROF_LINKLINE) -lons/g' /opt/oracle/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(RMAN_LINKLINE)/\$(RMAN_LINKLINE) -lons/g' /opt/oracle/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/ins_rdbms.mk
sed -i 's/\$(TG4PWD_LINKLINE)/\$(TG4PWD_LINKLINE) -lnnz12/g' /opt/oracle/app/oracle/product/12.1.0/dbhome_1/rdbms/lib/ins_rdbms.mk
The installer should guide you through each step in simple and advanced mode. When the requirements are checked you can savely bypass the warnings, because not everything can be checked on an unsupported ;-) environment.
!!!I really want to keep this up-to-date so please send me a note if i missed something or something is easier to handle than i did it!!!
Errors that can happen and how to bypass them
Could not retrieve local nodename
that happens if the hostname is not in your /etc/hosts file, just insert it there as localhost and it should work
java exception when calling the installer
happened at my side because I installed it over vnc This should help:
Error in invoking target 'install' of makefile ins_ctx.mk
seems to be a problem with a newer? glibc version in the make.log file you should find something like
warning: libstdc++.so.5, needed by /u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib//libsc_fa.so, not found
simply install libstdc++5
apt-get install libstdc++5
If you are ever reinstalling on an ASM and you can't select your disks in the DBCA because they are already member of the diskgroup, you have to delete the label before
dd if=/dev/zero of=/dev/oracleasm/disks/MYDB_ASM_ARC_1 bs=1024 count=100 dd if=/dev/zero of=/dev/oracleasm/disks/MYDB_ASM_DB_1 bs=1024 count=100Found myself the solution at Burlescon
Gerrit is great! And one of the most needed plugins is the delete-project plugin, for easy deleting projects without the need to manuall delete files from the harddisk and remove rows from the underlying database. What is missing? The plugin... it is NOT prebuilt available. Why? I don't know... However I needed to compile it and so here it is for the actual Gerrit version (2.6) delete-project.2.6.jar
After a fullwipe of my phone (after playing around ;-P) I ended up with a almost bricked phone and needed to copy some files. You normally do that with adb (android debug bridge) an command line client for your (to the pc connected) phone that runs on your client. Normally you need to install the Android SDK (some hundred MBs) and do a bunch of configurations, but there seems to be a new package "android-tools-adb" currently in Debian SID. Installation was not more than download it from packages.debian.org and install it with
dpkg -i downloadedpackagename.debworked out of the box, perfectly I LOVE DEBIAN!!!
I really don't know why, but there is no macro (record/playback) component included in gedit, and if you are used to that as I am from Notepad++ it's hard not to cry if you come to source you need to reformat or change....
But there is a plugin for gnome2 that Eduardo Romero changed to work in gnome3. Here the (very few) steps you need to get this plugin working on your gnome3 desktop
- get the files "macropy.plugin" and "macropy.py" from https://github.com/eguaio/gedit-macropy
- copy them to /usr/lib/gedit/plugins
- restart gedit
- activate plugin in Edit/Preferences/Plugins
If you prefer to not configure the plugin for global use then you can also do it per user following the README included in the github
You are done, have fun!
- Program -> Import Java Classes
- enter "java.lang.System" as in "Import Classes"
- Press "Import"
SYSTEM.getProperty('user.dir')Especially when using Java you need a better exception handling here's an rudimentary example of this:
BEGIN MESSAGE (SYSTEM.getProperty('user.dir')); PAUSE; -- just an example, of course some better errorhandling should be done here EXCEPTION -- important that you handle JAVA_ERROR AND EXCEPTION_THROWN -- you could even do a better handling by importing the Exception class WHEN ORA_JAVA.JAVA_ERROR then MESSAGE('Java Error occured: '||ORA_JAVA.LAST_ERROR); PAUSE; WHEN ORA_JAVA.EXCEPTION_THROWN then MESSAGE('Java Exception occured'); PAUSE; WHEN OTHERS THEN MESSAGE('others occured....'); PAUSE; END;Have fun! Let me know if anybody needs more examples!
If you use the output format DELIMITEDDATA in Oracle Reports, that exports the report as CSV file, then sometimes you need to use a wrapper (e.g. if there are CR in a field) means output is not like
"SCOTT";"TIGER";"TESTUSER"; "CAPERS";"JONES";"TESTUSER2";In Reports it's pretty easy, there is a parameter that you can set called CELLWRAPPER. With this parameter you can define which character should be used to wrap the cells. If you use double quotes (") then you get FRM-41214 Unable to run Report (when running from Forms, another error when running from rwservlet directly). I am currently working on 11g, but it seems thats something that's not fixed since 10g. So it's kind of terrible that for such a long time there is a bug that has not been fixed. Metalink Note 397279.1 describes a workaround, by using another parameter CMDFILE, basically a file that contains parameters for the reports. In this file you put in your CELLWRAPPER=" (UX) or CELLWRAPPER='"' (WIN) parameter, and call it with CMDFILE=/tmp/mycmdfile.cmd. Means you change your Url (or forms parameter lists whatever...) from
Recently I needed to split a delimited string with PL/SQL. I just did not want to write the xx version of a "parse delimited string" package, and so I stumbled upon Alex Nuijtens Blog. This solution was not the least complex, but so beautiful I almost wanted to cry ;-). !Thanks for sharing your solution at this point Alex! It worked perfectly and so I implemented it in my programs. After a few more tests with larger string (~5000-10000) I noticed huge performance issues. So I did a fast check with using a "normal" loop and not the hierachic query Alex is using. Same result, terribly slow (~30s). After thinking a bit (...happens from time to time...) it was clear, normally if you parse a delimited string, you always cut the part off the front, that you parsed and put it somewhere else (collection....), what did not happen by using this solution. So I rewrote the pure SQL approach to a PL/SQL function. So The code looks now:
vParseString := pParseText; FOR i IN 1..length (regexp_replace (vParseString,vRegExp)) + 1 LOOP vToken := REGEXP_SUBSTR (vParseString,vRegExp); vCutPos := REGEXP_INSTR(vParseString,vRegExp,1,2); vParseString := substr(vParseString,vCutPos); DBMS_OUTPUT.PUT_LINE(vToken); EXIT WHEN vCutPos = 0; END LOOP;The complete programs needs below 0.1 seconds to finish in comparison to 30 before. So Alex program is good for small strings, but does not fit my needs in this case. Probably it's much faster if you use analytic functions, where you always replace the string of the previous line... I think if I have some time I will give that a try, because a pure SQL solution would be much more beautiful than a PL/SQL approach ;-).
I use Icedove (Thunderbird) since years, and think it's really a good piece of software, in my opinion it's much better than Outlook, I was using for several years too. After splitting up my data into "OS" and "real data", I also moved the .icedove folder from my home directory by symlink to my data-harddisk. Mails worked fine, but lightning would display any evens, you also could not even create any new calendar, events. After I while I saw the following error in the error-console:
Page 2 of 11