There might be some confusion of terminology. Basically an index is a 'db', where the defaultdb is the main index. $SPLUNK_DB usually refers to the 'root' directory for where the indexes are stored (default paths are /opt/splunk/var/lib/splunk/ on *nix and c:\program files\splunk\var\lib\splunk on Win).
You can set up new indexes, as it seems you have, either in the GUI or manually in indexes.conf. You can then route incoming event into this index, normally by setting the index=blahblah in inputs.conf under a monitor stanza.
Moving a whole index is not particularly hard. Simplest is to stop splunk, move the index directory to the new location, edit indexes.conf to reflect the new location (you can use absolute paths, not just relative to $SPLUNK_DB ). Restart splunk.
However, it is quite hard to move data (individual events) from an index to another once it's there, but I don't think that was your question.
UPDATE:
Hmm, I'm still not sure what your situation is; you say that you have created some indexes (index1, index2 etc) in the defaultdb. I'm starting to think that maybe you correctly created indexes, but stored them in the directory that belongs to 'main', i.e. /opt/splunk/var/lib/splunk/defaultdb/yourindex.
If so, and if that is even possible without splunk complaining, it should be just as easy to move anyway. Just make sure that you don't move anything that belongs to defaultdb. All indexes should have the following subdirectories under it, colddb, db and thaweddb . Nothing more.
The actual events within an index are stored in $SPLUNK_DB/indexname/db or colddb/bucketfolder/rawdata/journal.gz The index (I just love the naming conventions) that make the event data searchable is the $SPLUNK_DB/indexname/db or colddb/bucketfolder/*.tsidx file (or files).
I have never tried to move anything out of this type of location in order to place it in another index.
Perhaps it would be a good thing if you clarified in which way your events are 'in the wrong db'.
/K
EDIT. Typos, clarification, etc.
... View more